Ehsan 00a8233c30 Support for printf intrinsic (#2829) 5 years ago
..
ABIInfo.h f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
BackendUtil.cpp 08f3100f25 Increase scan limit for DSE, add option (#2725) 5 years ago
CGAtomic.cpp f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
CGBlocks.cpp f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
CGBlocks.h f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
CGBuilder.h f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
CGBuiltin.cpp f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
CGCUDANV.cpp f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
CGCUDARuntime.cpp f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
CGCUDARuntime.h f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
CGCXX.cpp f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
CGCXXABI.cpp f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
CGCXXABI.h f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
CGCall.cpp 73e5b381c7 fix crash when has sampler as return type. (#2736) 5 years ago
CGCall.h f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
CGClass.cpp 2a01c58f73 Fix RayQuery allocation for CSE, DCE, statics, arrays, and lifetimes (#2469) 6 years ago
CGCleanup.cpp b9f2c78314 [linux-port] Evade unused in LLVM code (#1327) 7 years ago
CGCleanup.h f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
CGDebugInfo.cpp 55b29a12c4 Improve matrix and constant buffer debug info. (#2076) 6 years ago
CGDebugInfo.h e487566946 Make debug info of HLSL vectors more user friendly (#2018) 6 years ago
CGDecl.cpp 227c8e6f5a Added instructions to preserve intermediate values of computations. (#2721) 5 years ago
CGDeclCXX.cpp f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
CGException.cpp f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
CGExpr.cpp 850c8d3676 Fix empty struct check (#2134) 6 years ago
CGExprAgg.cpp 5d5f293e5a Take care CK_HLSLDerivedToBase in AggExprEmitter::VisitCastExpr. (#2312) 6 years ago
CGExprCXX.cpp cfb330ef56 Fixed bug where allocas get inserted at the wrong place. (#2140) 6 years ago
CGExprComplex.cpp ccbb0ec117 [linux-port] Add missing case statements (#1346) 7 years ago
CGExprConstant.cpp a7ee78049e De-duplicate numerical conversions code (#1885) 7 years ago
CGExprScalar.cpp c41ab4fe6c Don't generate cond branch for scalar ternary conditional operator. (#2239) 6 years ago
CGHLSLMS.cpp eb4a703eb0 Enable copy-in copy-out for lib profile. (#2858) 5 years ago
CGHLSLMSFinishCodeGen.cpp 00a8233c30 Support for printf intrinsic (#2829) 5 years ago
CGHLSLMSHelper.h 2ec5dd9c62 Handle more complicated dx.break circumstances (#2825) 5 years ago
CGHLSLRootSignature.cpp 4098229583 Code cleanup. (#2708) 5 years ago
CGHLSLRuntime.cpp a7ee78049e De-duplicate numerical conversions code (#1885) 7 years ago
CGHLSLRuntime.h 2ec5dd9c62 Handle more complicated dx.break circumstances (#2825) 5 years ago
CGLoopInfo.cpp d47cbb6579 Fixed [unroll] being interpreted as [unroll(1)]. (#1669) 7 years ago
CGLoopInfo.h d47cbb6579 Fixed [unroll] being interpreted as [unroll(1)]. (#1669) 7 years ago
CGObjC.cpp f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
CGObjCGNU.cpp f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
CGObjCMac.cpp f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
CGObjCRuntime.cpp f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
CGObjCRuntime.h f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
CGOpenCLRuntime.cpp f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
CGOpenCLRuntime.h f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
CGOpenMPRuntime.cpp f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
CGOpenMPRuntime.h f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
CGRecordLayout.h f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
CGRecordLayoutBuilder.cpp 40369a5884 Structure alignment Change (#721) 8 years ago
CGStmt.cpp d3af7f1237 Conditionalize breaks to keep them in loops (#2795) 5 years ago
CGStmtOpenMP.cpp 68185161a2 [linux-port] Fix warnings from lambda functions (#1320) 7 years ago
CGVTT.cpp f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
CGVTables.cpp f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
CGVTables.h f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
CGValue.h f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
CMakeLists.txt 4098229583 Code cleanup. (#2708) 5 years ago
CodeGenABITypes.cpp f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
CodeGenAction.cpp d5bb3089cf Add support for custom allocators (#390) 8 years ago
CodeGenFunction.cpp 227c8e6f5a Added instructions to preserve intermediate values of computations. (#2721) 5 years ago
CodeGenFunction.h f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
CodeGenModule.cpp b4bb5795cd Fix some argument passing and groupshared bad codegen and crashes 6 years ago
CodeGenModule.h d5bb3089cf Add support for custom allocators (#390) 8 years ago
CodeGenPGO.cpp f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
CodeGenPGO.h f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
CodeGenTBAA.cpp f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
CodeGenTBAA.h f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
CodeGenTypes.cpp 8226092fd7 Change in-memory representation of bool vectors to use i32's (#1742) 7 years ago
CodeGenTypes.h f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
CoverageMappingGen.cpp f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
CoverageMappingGen.h f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
EHScopeStack.h f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
ItaniumCXXABI.cpp c66b785d72 Add builtin types for min precision and half (#1492) 7 years ago
MicrosoftCXXABI.cpp f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
ModuleBuilder.cpp 045b5265dc Fix order of source content metadata: main file first, then sorted by name (#1606) 7 years ago
ObjectFilePCHContainerOperations.cpp f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
README.txt f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
SanitizerMetadata.cpp f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
SanitizerMetadata.h f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago
TargetInfo.cpp d5bb3089cf Add support for custom allocators (#390) 8 years ago
TargetInfo.h f805233b49 Revert license text in banner comments to original llvm verbage (#33) 9 years ago

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!

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