Cargando el resto de esta comparación.

LLVM small vs big

Creado El diff nunca expira
267 eliminaciones
356 líneas
183 adiciones
261 líneas
; ModuleID = 'BitcodeBuffer'
; ModuleID = 'BitcodeBuffer'
source_filename = "biggy"
source_filename = "biggy"
target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-macosx14.5.0-unknown"
target triple = "x86_64-unknown-macosx14.5.0-unknown"


%macho.mach_header_64 = type { i32, i32, i32, i32, i32, i32, i32, i32 }
%macho.mach_header_64 = type { i32, i32, i32, i32, i32, i32, i32, i32 }
%Thread.Mutex.Recursive = type { i64, i64, %Thread.Mutex, [4 x i8] }
%Thread.Mutex.Recursive = type { i64, i64, %Thread.Mutex, [4 x i8] }
%Thread.Mutex = type { %Thread.Mutex.DarwinImpl }
%Thread.Mutex = type { %Thread.Mutex.DarwinImpl }
%Thread.Mutex.DarwinImpl = type { %c.darwin.os_unfair_lock }
%Thread.Mutex.DarwinImpl = type { %c.darwin.os_unfair_lock }
%c.darwin.os_unfair_lock = type { i32 }
%c.darwin.os_unfair_lock = type { i32 }
%"atomic.Value(u8)" = type { i8 }
%"atomic.Value(u8)" = type { i8 }
%fmt.FormatOptions = type { { i64, i8, [7 x i8] }, { i64, i8, [7 x i8] }, i21, i2, [3 x i8] }
%fmt.FormatOptions = type { { i64, i8, [7 x i8] }, { i64, i8, [7 x i8] }, i21, i2, [3 x i8] }
%io.Writer = type { ptr, ptr }
%io.Writer = type { ptr, ptr }
%"io.fixed_buffer_stream.FixedBufferStream([]u8)" = type { { ptr, i64 }, i64 }
%"io.fixed_buffer_stream.FixedBufferStream([]u8)" = type { { ptr, i64 }, i64 }


@os.argv = internal unnamed_addr global { ptr, i64 } undef, align 8
@os.argv = internal unnamed_addr global { ptr, i64 } undef, align 8
@os.environ = internal unnamed_addr global { ptr, i64 } undef, align 8
@os.environ = internal unnamed_addr global { ptr, i64 } undef, align 8
@__anon_1669 = internal unnamed_addr constant { { ptr }, i32, i32 } { { ptr } { ptr @start.noopSigHandler }, i32 0, i32 0 }, align 8
@__anon_1669 = internal unnamed_addr constant { { ptr }, i32, i32 } { { ptr } { ptr @start.noopSigHandler }, i32 0, i32 0 }, align 8
@_mh_execute_header = weak_odr dso_local local_unnamed_addr global %macho.mach_header_64 undef, align 4
@_mh_execute_header = weak_odr dso_local local_unnamed_addr global %macho.mach_header_64 undef, align 4
@__anon_2157 = internal unnamed_addr constant [16 x i8] c"(msg truncated)\00", align 1
@__anon_2157 = internal unnamed_addr constant [16 x i8] c"(msg truncated)\00", align 1
@Progress.stderr_mutex = internal unnamed_addr global %Thread.Mutex.Recursive { i64 -1, i64 0, %Thread.Mutex zeroinitializer, [4 x i8] undef }, align 8
@Progress.stderr_mutex = internal unnamed_addr global %Thread.Mutex.Recursive { i64 -1, i64 0, %Thread.Mutex zeroinitializer, [4 x i8] undef }, align 8
@__anon_1474 = internal unnamed_addr constant [5 x i8] c"{d}\0A\00", align 1
@__anon_1474 = internal unnamed_addr constant [5 x i8] c"{d}\0A\00", align 1
@__anon_1704 = internal unnamed_addr constant [40 x i8] c"failed to set noop SIGPIPE handler: {s}\00", align 1
@__anon_1704 = internal unnamed_addr constant [40 x i8] c"failed to set noop SIGPIPE handler: {s}\00", align 1
@0 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 7, [6 x i8] undef }, align 8
@0 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 7, [6 x i8] undef }, align 8
@1 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 14, [6 x i8] undef }, align 8
@1 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 14, [6 x i8] undef }, align 8
@2 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 12, [6 x i8] undef }, align 8
@2 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 12, [6 x i8] undef }, align 8
@3 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 2, [6 x i8] undef }, align 8
@3 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 2, [6 x i8] undef }, align 8
@4 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 3, [6 x i8] undef }, align 8
@4 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 3, [6 x i8] undef }, align 8
@5 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 4, [6 x i8] undef }, align 8
@5 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 4, [6 x i8] undef }, align 8
@6 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 8, [6 x i8] undef }, align 8
@6 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 8, [6 x i8] undef }, align 8
@7 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 9, [6 x i8] undef }, align 8
@7 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 9, [6 x i8] undef }, align 8
@8 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 15, [6 x i8] undef }, align 8
@8 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 15, [6 x i8] undef }, align 8
@9 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 6, [6 x i8] undef }, align 8
@9 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 6, [6 x i8] undef }, align 8
@debug.panic_stage = internal thread_local unnamed_addr global i64 0, align 8
@debug.panic_stage = internal thread_local unnamed_addr global i64 0, align 8
@debug.panicking = internal unnamed_addr global %"atomic.Value(u8)" zeroinitializer, align 1
@debug.panicking = internal unnamed_addr global %"atomic.Value(u8)" zeroinitializer, align 1
@10 = private unnamed_addr constant { i16, i3, [1 x i8] } { i16 23, i3 undef, [1 x i8] undef }, align 2
@10 = private unnamed_addr constant { i16, i3, [1 x i8] } { i16 23, i3 undef, [1 x i8] undef }, align 2
@__anon_3651 = internal unnamed_addr constant [3 x i8] c"\EF\BF\BD", align 1
@__anon_3683 = internal unnamed_addr constant [3 x i8] c"\EF\BF\BD", align 1
@11 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 5, [6 x i8] undef }, align 8
@11 = private unnamed_addr constant { i64, i16, [6 x i8] } { i64 undef, i16 5, [6 x i8] undef }, align 8
@__anon_3758 = internal unnamed_addr constant [201 x i8] c"00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899\00", align 1
@__anon_3790 = internal unnamed_addr constant [201 x i8] c"00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899\00", align 1
@12 = private unnamed_addr constant { i16, i3, [1 x i8] } { i16 0, i3 1, [1 x i8] undef }, align 4
@12 = private unnamed_addr constant { i16, i3, [1 x i8] } { i16 0, i3 1, [1 x i8] undef }, align 4
@13 = private unnamed_addr constant { i16, i3, [1 x i8] } { i16 0, i3 2, [1 x i8] undef }, align 4
@13 = private unnamed_addr constant { i16, i3, [1 x i8] } { i16 0, i3 2, [1 x i8] undef }, align 4
@14 = private unnamed_addr constant { i16, i3, [1 x i8] } { i16 0, i3 3, [1 x i8] undef }, align 4
@14 = private unnamed_addr constant { i16, i3, [1 x i8] } { i16 0, i3 3, [1 x i8] undef }, align 4
@15 = private unnamed_addr constant { i16, i3, [1 x i8] } { i16 0, i3 -4, [1 x i8] undef }, align 4
@15 = private unnamed_addr constant { i16, i3, [1 x i8] } { i16 0, i3 -4, [1 x i8] undef }, align 4
@__anon_3287 = internal unnamed_addr constant [18 x i8] c"thread {} panic: \00", align 1
@__anon_3287 = internal unnamed_addr constant [18 x i8] c"thread {} panic: \00", align 1
@16 = private unnamed_addr constant %fmt.FormatOptions { { i64, i8, [7 x i8] } { i64 undef, i8 0, [7 x i8] undef }, { i64, i8, [7 x i8] } { i64 undef, i8 0, [7 x i8] undef }, i21 32, i2 -2, [3 x i8] undef }, align 8
@16 = private unnamed_addr constant %fmt.FormatOptions { { i64, i8, [7 x i8] } { i64 undef, i8 0, [7 x i8] undef }, { i64, i8, [7 x i8] } { i64 undef, i8 0, [7 x i8] undef }, i21 32, i2 -2, [3 x i8] undef }, align 8
@__anon_3300 = internal unnamed_addr constant [5 x i8] c"{s}\0A\00", align 1
@__anon_3300 = internal unnamed_addr constant [5 x i8] c"{s}\0A\00", align 1
@__anon_3318 = internal unnamed_addr constant [36 x i8] c"Panicked during a panic. Aborting.\0A\00", align 1
@__anon_3318 = internal unnamed_addr constant [36 x i8] c"Panicked during a panic. Aborting.\0A\00", align 1
@__anon_3692 = internal unnamed_addr constant [49 x i8] c"Unable to dump stack trace: debug info stripped\0A\00", align 1
@__anon_3724 = internal unnamed_addr constant [49 x i8] c"Unable to dump stack trace: debug info stripped\0A\00", align 1
@17 = private unnamed_addr constant [22 x i8] c"OperationNotSupported\00", align 1
@17 = private unnamed_addr constant [22 x i8] c"OperationNotSupported\00", align 1


; Function Attrs: nounwind uwtable
; Function Attrs: nounwind uwtable
define dso_local noundef i32 @main(i32 %0, ptr nonnull align 8 %1, ptr nonnull align 8 %2) local_unnamed_addr #0 {
define dso_local noundef i32 @main(i32 %0, ptr nonnull align 8 %1, ptr nonnull align 8 %2) local_unnamed_addr #0 {
%4 = alloca [16 x i8], align 8
%4 = alloca [16509 x i8], align 1
%.sroa.0.i.i.i.i.i.i.i.i = alloca i16, align 2
%5 = alloca [16 x i8], align 8
%5 = alloca [12 x i8], align 1
%.sroa.0.i.i.i.i.i.i.i.i = alloca i16512, align 16
%6 = alloca [8 x i8], align 8
%6 = alloca [8 x i8], align 8
%7 = alloca [16 x i8], align 8
%7 = alloca [16 x i8], align 8
%8 = alloca [4 x i8], align 4
%8 = alloca [4 x i8], align 4
%9 = alloca [16 x i8], align 8
%9 = alloca [16 x i8], align 8
br label %10
br label %10


10: ; preds = %10, %3
10: ; preds = %10, %3
%lsr.iv = phi i64 [ %lsr.iv.next, %10 ], [ -1, %3 ]
%lsr.iv = phi i64 [ %lsr.iv.next, %10 ], [ -1, %3 ]
%11 = shl i64 %lsr.iv, 3
%11 = shl i64 %lsr.iv, 3
%scevgep14 = getelementptr i8, ptr %2, i64 %11
%scevgep = getelementptr i8, ptr %2, i64 %11
%scevgep15 = getelementptr i8, ptr %scevgep14, i64 8
%scevgep13 = getelementptr i8, ptr %scevgep, i64 8
%12 = load ptr, ptr %scevgep15, align 8
%12 = load ptr, ptr %scevgep13, align 8
%.not = icmp eq ptr %12, null
%.not = icmp eq ptr %12, null
%lsr.iv.next = add i64 %lsr.iv, 1
%lsr.iv.next = add i64 %lsr.iv, 1
br i1 %.not, label %13, label %10
br i1 %.not, label %13, label %10


13: ; preds = %10
13: ; preds = %10
%14 = sext i32 %0 to i64
%14 = sext i32 %0 to i64
store ptr %1, ptr @os.argv, align 8
store ptr %1, ptr @os.argv, align 8
store i64 %14, ptr getelementptr inbounds ({ ptr, i64 }, ptr @os.argv, i64 0, i32 1), align 8
store i64 %14, ptr getelementptr inbounds ({ ptr, i64 }, ptr @os.argv, i64 0, i32 1), align 8
store ptr %2, ptr @os.environ, align 8
store ptr %2, ptr @os.environ, align 8
store i64 %lsr.iv.next, ptr getelementptr inbounds ({ ptr, i64 }, ptr @os.environ, i64 0, i32 1), align 8
store i64 %lsr.iv.next, ptr getelementptr inbounds ({ ptr, i64 }, ptr @os.environ, i64 0, i32 1), align 8
call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4)
call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4)
%15 = tail call i32 @sigaction(i32 13, ptr noalias nonnull readonly align 8 @__anon_1669, ptr noalias align 8 null)
%15 = tail call i32 @sigaction(i32 13, ptr noalias nonnull readonly align 8 @__anon_1669, ptr noalias align 8 null)
%16 = icmp eq i32 %15, -1
%16 = icmp eq i32 %15, -1
br i1 %16, label %posix.errno__anon_3210.exit.i.i, label %start.maybeIgnoreSigpipe.exit
br i1 %16, label %posix.errno__anon_3210.exit.i.i, label %start.maybeIgnoreSigpipe.exit


posix.errno__anon_3210.exit.i.i: ; preds = %13
posix.errno__anon_3210.exit.i.i: ; preds = %13
%17 = tail call ptr @__error()
%17 = tail call ptr @__error()
%18 = load i32, ptr %17, align 4
%18 = load i32, ptr %17, align 4
%.fr3.i.i = freeze i32 %18
%.fr3.i.i = freeze i32 %18
%19 = and i32 %.fr3.i.i, 65535
%19 = and i32 %.fr3.i.i, 65535
%switch.i.i = icmp eq i32 %19, 0
%switch.i.i = icmp eq i32 %19, 0
br i1 %switch.i.i, label %start.maybeIgnoreSigpipe.exit, label %posix.sigaction.exit.i
br i1 %switch.i.i, label %start.maybeIgnoreSigpipe.exit, label %posix.sigaction.exit.i


posix.sigaction.exit.i: ; preds = %posix.errno__anon_3210.exit.i.i
posix.sigaction.exit.i: ; preds = %posix.errno__anon_3210.exit.i.i
store ptr @17, ptr %4, align 8
store ptr @17, ptr %4, align 8
%.fca.1.gep.i = getelementptr inbounds { ptr, i64 }, ptr %4, i64 0, i32 1
%.fca.1.gep.i = getelementptr inbounds { ptr, i64 }, ptr %4, i64 0, i32 1
store i64 21, ptr %.fca.1.gep.i, align 8
store i64 21, ptr %.fca.1.gep.i, align 8
call fastcc void @debug.panic__anon_2624(ptr nonnull readonly align 8 %4)
call fastcc void @debug.panic__anon_2624(ptr nonnull readonly align 8 %4)
unreachable
unreachable


start.maybeIgnoreSigpipe.exit: ; preds = %13, %posix.errno__anon_3210.exit.i.i
start.maybeIgnoreSigpipe.exit: ; preds = %13, %posix.errno__anon_3210.exit.i.i
call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4)
call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4)
call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %7)
call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %7)
call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8)
call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8)
call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4)
call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4)
%20 = call i32 @pthread_threadid_np(ptr align 1 null, ptr nonnull align 8 %4)
%20 = call i32 @pthread_threadid_np(ptr align 1 null, ptr nonnull align 8 %4)
%21 = load i64, ptr %4, align 8
%21 = load i64, ptr %4, align 8