文件最后提交记录最后更新时间
[LLVM] [Clang] Backport "Support for Gentoo *t64 triples (64-bit time_t ABIs)"1 年前
[clang][CodeGen] Return RValue from EmitVAArg (#94635)1 年前
[clang][CodeGen] Return RValue from EmitVAArg (#94635)1 年前
[clang][CGRecordLayout] Remove dependency on isZeroSize (#96422)1 年前
[clang][CGRecordLayout] Remove dependency on isZeroSize (#96422)1 年前
[PAC] Authenticate function pointers in UBSan type checks (#99590)1 年前
[BPF] Fix linking issues in static map initializers (#91310)1 年前
[Driver] Add -Wa, options --crel and --allow-experimental-crel1 年前
[clang][CodeGen] Remove unused LValue::getAddress CGF arg. (#92465)2 年前
[CodeGen] Add a flag to disable emitting block signature strings (#96944)1 年前
[CodeGen][arm64e] Add methods and data members to Address, which are needed to authenticate signed pointers (#86923)2 年前
[PAC] Implement function pointer re-signing (#98847)1 年前
[Clang] Disable use of the counted_by attribute for whole struct pointers (#112636)1 年前
[CodeGen] Remove useless zero-index constant GEPs (NFCI)2 年前
Update the file headers across all of the LLVM projects in the monorepo7 年前
[clang][NFC] Annotate CGCUDARuntime.h with preferred_type2 年前
[clang] Implement pointer authentication for C++ virtual functions, v-tables, and VTTs (#94056)1 年前
[CodeGen][arm64e] Add methods and data members to Address, which are needed to authenticate signed pointers (#86923)2 年前
[clang] Implement pointer authentication for C++ virtual functions, v-tables, and VTTs (#94056)1 年前
[clang-repl] [codegen] Reduce the state in TBAA. NFC for static compilation. (#98138)1 年前
[clang] Implement function pointer signing and authenticated function calls (#93906)1 年前
[clang-repl] [codegen] Reduce the state in TBAA. NFC for static compilation. (#98138)1 年前
[CodeGen] Remove IsVolatile from DominatingValue<RValue>::save_type (#95165)1 年前
Re-apply "Emit missing cleanups for stmt-expr" and other commits (#89154)2 年前
[clang] Use std::make_unique (NFC) (#97176)1 年前
Add support for __builtin_verbose_trap (#79230)1 年前
Add support for __builtin_verbose_trap (#79230)1 年前
[clang] Use different memory layout type for _BitInt(N) in LLVM IR (#91364)1 年前
[clang] Ensure pointers passed to runtime support functions are correctly signed (#98276)1 年前
[clang][CodeGen] Remove unused LValue::getAddress CGF arg. (#92465)2 年前
[Clang] Check that we have the correct RecordDecl1 年前
Fix codegen of consteval functions returning an empty class, and related issues (#93115)1 年前
[Clang] Introduce CXXTypeidExpr::hasNullCheck (#95718)1 年前
The pragma STDC CX_LIMITED_RANGE ON should have precedence. (#98520)1 年前
[PAC] Incorrect codegen for constant global init with polymorphic MI (#99741)1 年前
[Clang][CodeGen] Fix type for atomic float incdec operators (#107075)1 年前
[clang][CodeGen][AMDGPU] Enable AMDGPU printf for spirv64-amd-amdhsa (#97132)1 年前
[HLSL] Split out resource class data from resource attribute (#98419)1 年前
[SPIRV][HLSL] Add lowering of rsqrt to SPIRV (#95849)1 年前
[HLSL] add loop unroll (#93879)1 年前
[clang][HLSL][SPRI-V] Add convergence intrinsics (#80680)2 年前
[clang][CodeGen] Remove unused LValue::getAddress CGF arg. (#92465)2 年前
[ObjC][CodeGen] Assume a for-in loop is in bounds and cannot overflow (#94885)1 年前
[NFCI][metadata][clang] Use create{Unlikely,Likely}BranchWeights (#89467)1 年前
Revert "[IR][NFC] Update IRBuilder to use InsertPosition (#96497)"1 年前
[CodeGen][arm64e] Add methods and data members to Address, which are needed to authenticate signed pointers (#86923)2 年前
[clang][CodeGen] Only include ABIInfo.h where required (NFC)3 年前
[CodeGenOpenCL] Remove pointer type caching2 年前
[CodeGenOpenCL] Remove pointer type caching2 年前
[OpenMP] Fix calculation of dependencies for multi-dimensional iteration space (#99347)1 年前
[OpenMP][offload] Fix dynamic schedule tracking (#97065)1 年前
[clang][OpenMP] Propoagate debug location to OMPIRBuilder reduction codegen (#100358)1 年前
[OpenMP] Migrate GPU Reductions CodeGen from Clang to OMPIRBuilder (#80343)1 年前
[PAC] Implement authentication for C++ member function pointers (#99576)1 年前
[clang] Implement function pointer signing and authenticated function calls (#93906)1 年前
[Clang] Ignore empty FieldDecls when asking for the field number (#100040)1 年前
[clang][CGRecordLayout] Remove dependency on isZeroSize (#96422)1 年前
[Clang][CodeGen] Don't emit assumptions if current block is unreachable. (#106936)1 年前
[Clang][OpenMP] Add interchange directive (#93022)1 年前
[clang] Implement pointer authentication for C++ virtual functions, v-tables, and VTTs (#94056)1 年前
Reland [C++20] [Modules] [Itanium ABI] Generate the vtable in the mod… (#102287)1 年前
Fix typo "indicies" (#92232)2 年前
[PAC] Implement function pointer re-signing (#98847)1 年前
Adjust MSVC version range for ARM64 build performance regression (#90731)1 年前
Revert "[IR][NFC] Update IRBuilder to use InsertPosition (#96497)"1 年前
[BPF] Fix linking issues in static map initializers (#91310)1 年前
[clang] Implement -fptrauth-auth-traps. (#102417)1 年前
Fix codegen of consteval functions returning an empty class, and related issues (#93115)1 年前
[C++20] [Modules] Fix the duplicated static initializer problem (#114193)1 年前
[clang-repl] [codegen] Reduce the state in TBAA. NFC for static compilation. (#98138)1 年前
[Coverage] Suppress covmap and profdata for system headers. (#97952)1 年前
[CodeGen][arm64e] Add methods and data members to Address, which are needed to authenticate signed pointers (#86923)2 年前
[clang-repl] [codegen] Reduce the state in TBAA. NFC for static compilation. (#98138)1 年前
[clang-repl] [codegen] Reduce the state in TBAA. NFC for static compilation. (#98138)1 年前
[Clang][CodeGen] Start migrating away from assuming the Default AS is 0 (#88182)2 年前
[clang-repl] [codegen] Reduce the state in TBAA. NFC for static compilation. (#98138)1 年前
[clang-repl] [codegen] Reduce the state in TBAA. NFC for static compilation. (#98138)1 年前
[PAC] Implement function pointer type discrimination (#96992)1 年前
[clang] Implement pointer authentication for C++ virtual functions, v-tables, and VTTs (#94056)1 年前
Move SystemHeadersCoverage into llvm::coverage in CoverageMappingGen.h1 年前
Move SystemHeadersCoverage into llvm::coverage in CoverageMappingGen.h1 年前
[CodeGen] Modernize EHScopeStack::Cleanup::Flags (NFC)2 年前
Reland [C++20] [Modules] [Itanium ABI] Generate the vtable in the mod… (#102287)1 年前
[clang][CodeGen] Cleanup missed ShouldLinkFiles definitions (#97115)1 年前
[clang][CodeGen] Cleanup missed ShouldLinkFiles definitions (#97115)1 年前
Reapply: [MC/DC][Coverage] Loosen the limit of NumConds from 6 (#82448)1 年前
[clang][lex] Always pass suggested module to InclusionDirective() callback (#81061)2 年前
[clang][lex] Always pass suggested module to InclusionDirective() callback (#81061)2 年前
[clang-repl] [codegen] Reduce the state in TBAA. NFC for static compilation. (#98138)1 年前
[BPF] Fix linking issues in static map initializers (#91310)1 年前
[clang] set DebugCompilationDir in PCHContainer (#67744)2 年前
[clang][TargetInfo] Use LangAS for getPointer{Width,Align}()3 年前
Variable auto-init: also auto-init alloca7 年前
Revert "This is a test commit"5 年前
[IR] Adds Instruction::setNoSanitizeMetadata()3 年前
[IR] Adds Instruction::setNoSanitizeMetadata()3 年前
[NFC] Refactor ConstantArrayType size storage (#85716)2 年前
[Arm][AArch64][Clang] Respect function's branch protection attributes. (#101978)1 年前
[Arm][AArch64][Clang] Respect function's branch protection attributes. (#101978)1 年前
[clang] LLVM_FALLTHROUGH => [[fallthrough]]. NFC3 年前
Use {DenseSet,SmallPtrSet}::contains (NFC)4 年前
README.txt

IRgen optimization opportunities.

//===---------------------------------------------------------------------===//

The common pattern of

short x; // or char, etc (x == 10)

generates an zext/sext of x which can easily be avoided.

//===---------------------------------------------------------------------===//

Bitfields accesses can be shifted to simplify masking and sign extension. For example, if the bitfield width is 8 and it is appropriately aligned then is is a lot shorter to just load the char directly.

//===---------------------------------------------------------------------===//

It may be worth avoiding creation of alloca's for formal arguments for the common situation where the argument is never written to or has its address taken. The idea would be to begin generating code by using the argument directly and if its address is taken or it is stored to then generate the alloca and patch up the existing code.

In theory, the same optimization could be a win for block local variables as long as the declaration dominates all statements in the block.

NOTE: The main case we care about this for is for -O0 -g compile time performance, and in that scenario we will need to emit the alloca anyway currently to emit proper debug info. So this is blocked by being able to emit debug information which refers to an LLVM temporary, not an alloca.

//===---------------------------------------------------------------------===//

We should try and avoid generating basic blocks which only contain jumps. At -O0, this penalizes us all the way from IRgen (malloc & instruction overhead), all the way down through code generation and assembly time.

On 176.gcc:expr.ll, it looks like over 12% of basic blocks are just direct branches!

//===---------------------------------------------------------------------===//