Thanks for using Compiler Explorer
Sponsors
Jakt
C++
Ada
Analysis
Android Java
Android Kotlin
Assembly
C
C3
Carbon
C++ (Circle)
CIRCT
Clean
CMake
CMakeScript
COBOL
C++ for OpenCL
MLIR
Cppx
Cppx-Blue
Cppx-Gold
Cpp2-cppfront
Crystal
C#
CUDA C++
D
Dart
Elixir
Erlang
Fortran
F#
Go
Haskell
HLSL
Hook
Hylo
ispc
Java
Julia
Kotlin
LLVM IR
LLVM MIR
Modula-2
Nim
Objective-C
Objective-C++
OCaml
OpenCL C
Pascal
Pony
Python
Racket
Ruby
Rust
Snowball
Scala
Solidity
Spice
Swift
LLVM TableGen
Toit
TypeScript Native
V
Vala
Visual Basic
Zig
Javascript
GIMPLE
llvm source #1
Output
Compile to binary object
Link to binary
Execute the code
Intel asm syntax
Demangle identifiers
Verbose demangling
Filters
Unused labels
Library functions
Directives
Comments
Horizontal whitespace
Debug intrinsics
Compiler
clang (assertions trunk)
clang (trunk)
clang 10.0.0
clang 10.0.1
clang 11.0.0
clang 11.0.1
clang 12.0.0
clang 12.0.1
clang 13.0.0
clang 14.0.0
clang 15.0.0
clang 16.0.0
clang 17.0.1
clang 18.1.0
clang 4.0.1
clang 5.0.0
clang 6.0.0
clang 7.0.0
clang 8.0.0
clang 9.0.0
llc (assertions trunk)
llc (trunk)
llc 10.0.0
llc 10.0.1
llc 11.0.0
llc 11.0.1
llc 12.0.0
llc 12.0.1
llc 13.0.0
llc 14.0.0
llc 15.0.0
llc 16.0.0
llc 17.0.1
llc 18.1.0
llc 3.2
llc 3.3
llc 3.9.1
llc 4.0.0
llc 4.0.1
llc 5.0.0
llc 6.0.0
llc 7.0.0
llc 8.0.0
llc 9.0.0
opt (assertions trunk)
opt (trunk)
opt 10.0.0
opt 10.0.1
opt 11.0.0
opt 11.0.1
opt 12.0.0
opt 12.0.1
opt 13.0.0
opt 14.0.0
opt 15.0.0
opt 16.0.0
opt 17.0.1
opt 18.1.0
opt 3.2
opt 3.3
opt 3.9.1
opt 4.0.0
opt 4.0.1
opt 5.0.0
opt 6.0.0
opt 7.0.0
opt 8.0.0
opt 9.0.0
Options
Source code
; ModuleID = '/tmp/a.ll' target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" %"class.std::__u::shared_ptr.148" = type { ptr, ptr } %"class.Invar::Invariant" = type <{ %"class.std::runtime_error", %"class.std::__u::basic_string", %"class.std::__u::basic_string", %"class.std::__u::basic_string", ptr, i32, [4 x i8] }> %"class.std::runtime_error" = type { %"class.std::exception", %"class.std::__u::__libcpp_refstring" } %"class.std::exception" = type { ptr } %"class.std::__u::__libcpp_refstring" = type { ptr } %"class.std::__u::basic_string" = type { %"class.std::__u::__compressed_pair" } %"class.std::__u::__compressed_pair" = type { %"struct.std::__u::__compressed_pair_elem" } %"struct.std::__u::__compressed_pair_elem" = type { %"struct.std::__u::basic_string<char>::__rep" } %"struct.std::__u::basic_string<char>::__rep" = type { %union.anon } %union.anon = type { %"struct.std::__u::basic_string<char>::__long" } %"struct.std::__u::basic_string<char>::__long" = type { ptr, i64, i64 } %"class.boost::logging::rdLogger" = type { ptr, i8, i8, ptr, ptr } %"class.Queries::Query" = type { ptr, i32, i32, %"class.std::__u::basic_string", %"class.std::__u::basic_string", %"class.std::__u::vector.140", i8, ptr, %union.anon.147 } %"class.std::__u::vector.140" = type { ptr, ptr, %"class.std::__u::__compressed_pair.141" } %"class.std::__u::__compressed_pair.141" = type { %"struct.std::__u::__compressed_pair_elem.142" } %"struct.std::__u::__compressed_pair_elem.142" = type { ptr } %union.anon.147 = type { ptr } $q1 = comdat any @rdErrorLog = external global %"class.std::__u::shared_ptr.148", align 8 @.str.34 = external hidden unnamed_addr constant [8 x i8], align 1 @.str.35 = external hidden unnamed_addr constant [7 x i8], align 1 @_ZTIN5Invar9InvariantE = external dso_local constant { ptr, ptr, ptr }, align 8 @.str.36 = external hidden unnamed_addr constant [24 x i8], align 1 @.str.53 = external hidden unnamed_addr constant [10 x i8], align 1 @.str.54 = external hidden unnamed_addr constant [12 x i8], align 1 @.str.55 = external hidden unnamed_addr constant [48 x i8], align 1 @.str.56 = external hidden unnamed_addr constant [11 x i8], align 1 @.str.57 = external hidden unnamed_addr constant [19 x i8], align 1 @.str.58 = external hidden unnamed_addr constant [95 x i8], align 1 ; Function Attrs: argmemonly nocallback nofree nosync nounwind willreturn declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #0 declare i32 @__gxx_personality_v0(...) ; Function Attrs: argmemonly nocallback nofree nosync nounwind willreturn declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0 ; Function Attrs: mustprogress uwtable define weak_odr dso_local void @q1(ptr noundef nonnull align 8 dereferenceable(8) %0, i1 noundef zeroext %1, ptr noundef nonnull align 8 dereferenceable(8) %2, i1 noundef zeroext %3, i32 noundef %4) local_unnamed_addr #1 comdat align 32 personality ptr @__gxx_personality_v0 { %6 = alloca %"class.Invar::Invariant", align 8 %7 = alloca %"class.Invar::Invariant", align 8 %8 = alloca %"class.Invar::Invariant", align 8 %9 = load ptr, ptr %0, align 8 %10 = icmp eq ptr %9, null br i1 %10, label %11, label %43 11: ; preds = %5 call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %6) #6 call void @_ZN5Invar9InvariantC2EPKcS2_S2_S2_i(ptr noundef nonnull align 8 dereferenceable(100) %6, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.55, i32 noundef 69) %12 = load ptr, ptr @rdErrorLog, align 8 %13 = icmp eq ptr %12, null br i1 %13, label %36, label %14 14: ; preds = %11 %15 = load ptr, ptr %12, align 8 %16 = icmp eq ptr %15, null br i1 %16, label %36, label %17 17: ; preds = %14 %18 = getelementptr inbounds %"class.boost::logging::rdLogger", ptr %12, i64 0, i32 2 %19 = load i8, ptr %18, align 1, !range !6 %20 = icmp eq i8 %19, 0 br i1 %20, label %36, label %21 21: ; preds = %17 %22 = getelementptr inbounds %"class.boost::logging::rdLogger", ptr %12, i64 0, i32 4 %23 = load ptr, ptr %22, align 8 %24 = icmp eq ptr %23, null %25 = select i1 %24, ptr %12, ptr %22 %26 = load ptr, ptr %25, align 8 %27 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5RDLog8toStreamERNSt3__u13basic_ostreamIcNS0_11char_traitsIcEEEE(ptr noundef nonnull align 8 dereferenceable(8) %26) to label %28 unwind label %34 28: ; preds = %21 %29 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3__u24__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_m(ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull @.str.34, i64 noundef 7) to label %30 unwind label %34 30: ; preds = %28 %31 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5InvarlsERNSt3__u13basic_ostreamIcNS0_11char_traitsIcEEEERKNS_9InvariantE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(100) %6) to label %32 unwind label %34 32: ; preds = %30 %33 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3__u24__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_m(ptr noundef nonnull align 8 dereferenceable(8) %31, ptr noundef nonnull @.str.35, i64 noundef 6) to label %36 unwind label %34 34: ; preds = %38, %32, %30, %28, %21 %35 = landingpad { ptr, i32 } cleanup br label %41 36: ; preds = %32, %17, %14, %11 %37 = call ptr @__cxa_allocate_exception(i64 104) #6 invoke void @_ZN5Invar9InvariantC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(100) %37, ptr noundef nonnull align 8 dereferenceable(100) %6) to label %38 unwind label %39 38: ; preds = %36 invoke void @__cxa_throw(ptr nonnull %37, ptr nonnull @_ZTIN5Invar9InvariantE, ptr nonnull @_ZN5Invar9InvariantD2Ev) #7 to label %169 unwind label %34 39: ; preds = %36 %40 = landingpad { ptr, i32 } cleanup call void @__cxa_free_exception(ptr %37) #6 br label %41 41: ; preds = %39, %34 %42 = phi { ptr, i32 } [ %35, %34 ], [ %40, %39 ] call void @_ZN5Invar9InvariantD2Ev(ptr noundef nonnull align 8 dereferenceable(100) %6) #6 call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %6) #6 br label %167 43: ; preds = %5 %44 = load ptr, ptr %2, align 8 %45 = icmp eq ptr %44, null br i1 %45, label %46, label %78 46: ; preds = %43 call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %7) #6 call void @_ZN5Invar9InvariantC2EPKcS2_S2_S2_i(ptr noundef nonnull align 8 dereferenceable(100) %7, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.55, i32 noundef 70) %47 = load ptr, ptr @rdErrorLog, align 8 %48 = icmp eq ptr %47, null br i1 %48, label %71, label %49 49: ; preds = %46 %50 = load ptr, ptr %47, align 8 %51 = icmp eq ptr %50, null br i1 %51, label %71, label %52 52: ; preds = %49 %53 = getelementptr inbounds %"class.boost::logging::rdLogger", ptr %47, i64 0, i32 2 %54 = load i8, ptr %53, align 1, !range !6 %55 = icmp eq i8 %54, 0 br i1 %55, label %71, label %56 56: ; preds = %52 %57 = getelementptr inbounds %"class.boost::logging::rdLogger", ptr %47, i64 0, i32 4 %58 = load ptr, ptr %57, align 8 %59 = icmp eq ptr %58, null %60 = select i1 %59, ptr %47, ptr %57 %61 = load ptr, ptr %60, align 8 %62 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5RDLog8toStreamERNSt3__u13basic_ostreamIcNS0_11char_traitsIcEEEE(ptr noundef nonnull align 8 dereferenceable(8) %61) to label %63 unwind label %69 63: ; preds = %56 %64 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3__u24__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_m(ptr noundef nonnull align 8 dereferenceable(8) %62, ptr noundef nonnull @.str.34, i64 noundef 7) to label %65 unwind label %69 65: ; preds = %63 %66 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5InvarlsERNSt3__u13basic_ostreamIcNS0_11char_traitsIcEEEERKNS_9InvariantE(ptr noundef nonnull align 8 dereferenceable(8) %64, ptr noundef nonnull align 8 dereferenceable(100) %7) to label %67 unwind label %69 67: ; preds = %65 %68 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3__u24__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_m(ptr noundef nonnull align 8 dereferenceable(8) %66, ptr noundef nonnull @.str.35, i64 noundef 6) to label %71 unwind label %69 69: ; preds = %73, %67, %65, %63, %56 %70 = landingpad { ptr, i32 } cleanup br label %76 71: ; preds = %67, %52, %49, %46 %72 = call ptr @__cxa_allocate_exception(i64 104) #6 invoke void @_ZN5Invar9InvariantC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(100) %72, ptr noundef nonnull align 8 dereferenceable(100) %7) to label %73 unwind label %74 73: ; preds = %71 invoke void @__cxa_throw(ptr nonnull %72, ptr nonnull @_ZTIN5Invar9InvariantE, ptr nonnull @_ZN5Invar9InvariantD2Ev) #7 to label %169 unwind label %69 74: ; preds = %71 %75 = landingpad { ptr, i32 } cleanup call void @__cxa_free_exception(ptr %72) #6 br label %76 76: ; preds = %74, %69 %77 = phi { ptr, i32 } [ %70, %69 ], [ %75, %74 ] call void @_ZN5Invar9InvariantD2Ev(ptr noundef nonnull align 8 dereferenceable(100) %7) #6 call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %7) #6 br label %167 78: ; preds = %43 %79 = icmp ult i32 %4, 3 br i1 %79, label %112, label %80 80: ; preds = %78 call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %8) #6 call void @_ZN5Invar9InvariantC2EPKcS2_S2_S2_i(ptr noundef nonnull align 8 dereferenceable(100) %8, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.55, i32 noundef 73) %81 = load ptr, ptr @rdErrorLog, align 8 %82 = icmp eq ptr %81, null br i1 %82, label %105, label %83 83: ; preds = %80 %84 = load ptr, ptr %81, align 8 %85 = icmp eq ptr %84, null br i1 %85, label %105, label %86 86: ; preds = %83 %87 = getelementptr inbounds %"class.boost::logging::rdLogger", ptr %81, i64 0, i32 2 %88 = load i8, ptr %87, align 1, !range !6 %89 = icmp eq i8 %88, 0 br i1 %89, label %105, label %90 90: ; preds = %86 %91 = getelementptr inbounds %"class.boost::logging::rdLogger", ptr %81, i64 0, i32 4 %92 = load ptr, ptr %91, align 8 %93 = icmp eq ptr %92, null %94 = select i1 %93, ptr %81, ptr %91 %95 = load ptr, ptr %94, align 8 %96 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5RDLog8toStreamERNSt3__u13basic_ostreamIcNS0_11char_traitsIcEEEE(ptr noundef nonnull align 8 dereferenceable(8) %95) to label %97 unwind label %103 97: ; preds = %90 %98 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3__u24__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_m(ptr noundef nonnull align 8 dereferenceable(8) %96, ptr noundef nonnull @.str.34, i64 noundef 7) to label %99 unwind label %103 99: ; preds = %97 %100 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5InvarlsERNSt3__u13basic_ostreamIcNS0_11char_traitsIcEEEERKNS_9InvariantE(ptr noundef nonnull align 8 dereferenceable(8) %98, ptr noundef nonnull align 8 dereferenceable(100) %8) to label %101 unwind label %103 101: ; preds = %99 %102 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3__u24__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_m(ptr noundef nonnull align 8 dereferenceable(8) %100, ptr noundef nonnull @.str.35, i64 noundef 6) to label %105 unwind label %103 103: ; preds = %107, %101, %99, %97, %90 %104 = landingpad { ptr, i32 } cleanup br label %110 105: ; preds = %101, %86, %83, %80 %106 = call ptr @__cxa_allocate_exception(i64 104) #6 invoke void @_ZN5Invar9InvariantC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(100) %106, ptr noundef nonnull align 8 dereferenceable(100) %8) to label %107 unwind label %108 107: ; preds = %105 invoke void @__cxa_throw(ptr nonnull %106, ptr nonnull @_ZTIN5Invar9InvariantE, ptr nonnull @_ZN5Invar9InvariantD2Ev) #7 to label %169 unwind label %103 108: ; preds = %105 %109 = landingpad { ptr, i32 } cleanup call void @__cxa_free_exception(ptr %106) #6 br label %110 110: ; preds = %108, %103 %111 = phi { ptr, i32 } [ %104, %103 ], [ %109, %108 ] call void @_ZN5Invar9InvariantD2Ev(ptr noundef nonnull align 8 dereferenceable(100) %8) #6 call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %8) #6 br label %167 112: ; preds = %78 %113 = and i1 %1, %3 br i1 %113, label %114, label %135 114: ; preds = %112 %115 = getelementptr i8, ptr %44, i64 88 %116 = load i8, ptr %115, align 8, !range !6 %117 = getelementptr inbounds %"class.Queries::Query", ptr %9, i64 0, i32 6 %118 = load i8, ptr %117, align 8, !range !6 %119 = icmp ne i8 %118, 0 %120 = icmp ne i8 %116, 0 switch i32 %4, label %166 [ i32 0, label %121 i32 1, label %124 i32 2, label %127 ] 121: ; preds = %114 %122 = xor i1 %120, true %123 = or i1 %119, %122 br i1 %123, label %166, label %133 124: ; preds = %114 %125 = xor i1 %119, true %126 = or i1 %120, %125 br i1 %126, label %166, label %133 127: ; preds = %114 %128 = or i8 %118, %116 %129 = icmp eq i8 %128, 0 br i1 %129, label %133, label %130 130: ; preds = %127 %131 = add nuw nsw i8 %118, %116 %132 = icmp eq i8 %131, 1 br i1 %132, label %133, label %166 133: ; preds = %130, %127, %124, %121 %134 = phi i8 [ 1, %121 ], [ 0, %124 ], [ 1, %127 ], [ 0, %130 ] store i8 %134, ptr %117, align 8 br label %166 135: ; preds = %112 br i1 %1, label %136, label %150 136: ; preds = %135 %137 = getelementptr inbounds %"class.Queries::Query", ptr %9, i64 0, i32 6 %138 = load i8, ptr %137, align 8, !range !6 %139 = icmp eq i8 %138, 0 switch i32 %4, label %166 [ i32 0, label %140 i32 1, label %142 i32 2, label %144 ] 140: ; preds = %136 br i1 %139, label %141, label %166 141: ; preds = %140 store ptr %44, ptr %0, align 8 store ptr %9, ptr %2, align 8 br label %166 142: ; preds = %136 br i1 %139, label %166, label %143 143: ; preds = %142 store ptr %44, ptr %0, align 8 store ptr %9, ptr %2, align 8 br label %166 144: ; preds = %136 store ptr %44, ptr %0, align 8 store ptr %9, ptr %2, align 8 br i1 %139, label %145, label %166 145: ; preds = %144 %146 = load ptr, ptr %0, align 8 %147 = getelementptr inbounds %"class.Queries::Query", ptr %146, i64 0, i32 6 %148 = load i8, ptr %147, align 8, !range !6 %149 = xor i8 %148, 1 store i8 %149, ptr %147, align 8 br label %166 150: ; preds = %135 br i1 %3, label %151, label %166 151: ; preds = %150 store ptr %44, ptr %0, align 8 store ptr %9, ptr %2, align 8 %152 = load ptr, ptr %0, align 8 %153 = getelementptr inbounds %"class.Queries::Query", ptr %152, i64 0, i32 6 %154 = load i8, ptr %153, align 8, !range !6 %155 = icmp eq i8 %154, 0 switch i32 %4, label %166 [ i32 0, label %156 i32 1, label %158 i32 2, label %160 ] 156: ; preds = %151 br i1 %155, label %157, label %166 157: ; preds = %156 store ptr %9, ptr %0, align 8 store ptr %152, ptr %2, align 8 br label %166 158: ; preds = %151 br i1 %155, label %166, label %159 159: ; preds = %158 store ptr %9, ptr %0, align 8 store ptr %152, ptr %2, align 8 br label %166 160: ; preds = %151 store ptr %9, ptr %0, align 8 store ptr %152, ptr %2, align 8 br i1 %155, label %161, label %166 161: ; preds = %160 %162 = load ptr, ptr %0, align 8 %163 = getelementptr inbounds %"class.Queries::Query", ptr %162, i64 0, i32 6 %164 = load i8, ptr %163, align 8, !range !6 %165 = xor i8 %164, 1 store i8 %165, ptr %163, align 8 br label %166 166: ; preds = %161, %160, %159, %158, %157, %156, %151, %150, %145, %144, %143, %142, %141, %140, %136, %133, %130, %124, %121, %114 ret void 167: ; preds = %110, %76, %41 %168 = phi { ptr, i32 } [ %111, %110 ], [ %77, %76 ], [ %42, %41 ] resume { ptr, i32 } %168 169: ; preds = %107, %73, %38 unreachable } ; Function Attrs: uwtable declare dso_local void @_ZN5Invar9InvariantC2EPKcS2_S2_S2_i(ptr noundef nonnull align 8 dereferenceable(100), ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef) unnamed_addr #2 align 32 declare noundef nonnull align 8 dereferenceable(8) ptr @_ZN5InvarlsERNSt3__u13basic_ostreamIcNS0_11char_traitsIcEEEERKNS_9InvariantE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(100)) local_unnamed_addr #3 declare noundef nonnull align 8 dereferenceable(8) ptr @_ZN5RDLog8toStreamERNSt3__u13basic_ostreamIcNS0_11char_traitsIcEEEE(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr ; Function Attrs: inlinehint uwtable declare dso_local void @_ZN5Invar9InvariantC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(100), ptr noundef nonnull align 8 dereferenceable(100)) unnamed_addr #4 align 32 declare void @__cxa_free_exception(ptr) local_unnamed_addr ; Function Attrs: nounwind uwtable declare dso_local void @_ZN5Invar9InvariantD2Ev(ptr noundef nonnull align 8 dereferenceable(100)) unnamed_addr #5 align 32 declare void @__cxa_throw(ptr, ptr, ptr) local_unnamed_addr ; Function Attrs: uwtable declare hidden noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3__u24__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_m(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef, i64 noundef) local_unnamed_addr #2 align 32 attributes #0 = { argmemonly nocallback nofree nosync nounwind willreturn } attributes #1 = { mustprogress uwtable "frame-pointer"="non-leaf" "min-legal-vector-width"="0" "no-trapping-math"="true" "prefer-vector-width"="128" "stack-protector-buffer-size"="8" "target-cpu"="haswell" "target-features"="+aes,+avx,+avx2,+bmi,+bmi2,+crc32,+cx16,+cx8,+f16c,+fma,+fsgsbase,+fxsr,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+popcnt,+rdrnd,+sahf,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave,+xsaveopt" } attributes #2 = { uwtable "frame-pointer"="non-leaf" "min-legal-vector-width"="0" "no-trapping-math"="true" "prefer-vector-width"="128" "stack-protector-buffer-size"="8" "target-cpu"="haswell" "target-features"="+aes,+avx,+avx2,+bmi,+bmi2,+crc32,+cx16,+cx8,+f16c,+fma,+fsgsbase,+fxsr,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+popcnt,+rdrnd,+sahf,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave,+xsaveopt" } attributes #3 = { "frame-pointer"="non-leaf" "no-trapping-math"="true" "prefer-vector-width"="128" "stack-protector-buffer-size"="8" "target-cpu"="haswell" "target-features"="+aes,+avx,+avx2,+bmi,+bmi2,+crc32,+cx16,+cx8,+f16c,+fma,+fsgsbase,+fxsr,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+popcnt,+rdrnd,+sahf,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave,+xsaveopt" } attributes #4 = { inlinehint uwtable "frame-pointer"="non-leaf" "min-legal-vector-width"="0" "no-trapping-math"="true" "prefer-vector-width"="128" "stack-protector-buffer-size"="8" "target-cpu"="haswell" "target-features"="+aes,+avx,+avx2,+bmi,+bmi2,+crc32,+cx16,+cx8,+f16c,+fma,+fsgsbase,+fxsr,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+popcnt,+rdrnd,+sahf,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave,+xsaveopt" } attributes #5 = { nounwind uwtable "frame-pointer"="non-leaf" "min-legal-vector-width"="0" "no-trapping-math"="true" "prefer-vector-width"="128" "stack-protector-buffer-size"="8" "target-cpu"="haswell" "target-features"="+aes,+avx,+avx2,+bmi,+bmi2,+crc32,+cx16,+cx8,+f16c,+fma,+fsgsbase,+fxsr,+invpcid,+lzcnt,+mmx,+movbe,+pclmul,+popcnt,+rdrnd,+sahf,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave,+xsaveopt" } attributes #6 = { nounwind } attributes #7 = { noreturn } !llvm.module.flags = !{!0, !1, !2, !3, !4} !0 = !{i32 1, !"wchar_size", i32 4} !1 = !{i32 8, !"PIC Level", i32 2} !2 = !{i32 7, !"PIE Level", i32 2} !3 = !{i32 7, !"uwtable", i32 2} !4 = !{i32 7, !"frame-pointer", i32 1} !6 = !{i8 0, i8 2}
Become a Patron
Sponsor on GitHub
Donate via PayPal
Source on GitHub
Mailing list
Installed libraries
Wiki
Report an issue
How it works
Contact the author
CE on Mastodon
About the author
Statistics
Changelog
Version tree