• Home
  • History
  • Annotate
Name
Date
Size
#Lines
LOC

..--

ABIInfo.hD22-Nov-20234.9 KiB15487

Address.hD22-Nov-20233.3 KiB11972

Android.bpD22-Nov-2023106 65

BackendUtil.cppD22-Nov-202334.2 KiB911716

CGAtomic.cppD22-Nov-202374.9 KiB1,8551,420

CGBlocks.cppD22-Nov-202385.8 KiB2,3691,458

CGBlocks.hD22-Nov-20238.2 KiB278191

CGBuilder.hD22-Nov-202312.6 KiB303219

CGBuiltin.cppD22-Nov-2023335.9 KiB8,1036,973

CGCUDABuiltin.cppD22-Nov-20234.4 KiB11858

CGCUDANV.cppD22-Nov-202315 KiB368233

CGCUDARuntime.cppD22-Nov-20231.8 KiB5631

CGCUDARuntime.hD22-Nov-20232.1 KiB7436

CGCXX.cppD22-Nov-202312.3 KiB327196

CGCXXABI.cppD22-Nov-202312.1 KiB333239

CGCXXABI.hD22-Nov-202325.1 KiB589265

CGCall.cppD22-Nov-2023158.3 KiB4,1422,974

CGCall.hD22-Nov-20235.5 KiB179106

CGClass.cppD22-Nov-2023112.8 KiB3,0052,044

CGCleanup.cppD22-Nov-202345.4 KiB1,229767

CGCleanup.hD22-Nov-202319.5 KiB645412

CGDebugInfo.cppD22-Nov-2023143 KiB3,7742,816

CGDebugInfo.hD22-Nov-202325.1 KiB597302

CGDecl.cppD22-Nov-202369.1 KiB1,8801,245

CGDeclCXX.cppD22-Nov-202324.4 KiB625408

CGException.cppD22-Nov-202368 KiB1,9011,257

CGExpr.cppD22-Nov-2023165.3 KiB4,2643,116

CGExprAgg.cppD22-Nov-202358.3 KiB1,5761,021

CGExprCXX.cppD22-Nov-202375.9 KiB1,9591,314

CGExprComplex.cppD22-Nov-202341.9 KiB1,110818

CGExprConstant.cppD22-Nov-202358.5 KiB1,6341,188

CGExprScalar.cppD22-Nov-2023133.4 KiB3,5452,551

CGLoopInfo.cppD22-Nov-20239.7 KiB297240

CGLoopInfo.hD22-Nov-20235.5 KiB17281

CGObjC.cppD22-Nov-2023124.9 KiB3,3712,211

CGObjCGNU.cppD22-Nov-2023122.8 KiB2,9062,090

CGObjCMac.cppD22-Nov-2023287.5 KiB7,3264,697

CGObjCRuntime.cppD22-Nov-202314 KiB381241

CGObjCRuntime.hD22-Nov-202313.3 KiB313174

CGOpenCLRuntime.cppD22-Nov-20232.7 KiB7956

CGOpenCLRuntime.hD22-Nov-20231.5 KiB5625

CGOpenMPRuntime.cppD23-Nov-2023273.2 KiB6,5964,852

CGOpenMPRuntime.hD22-Nov-202348.5 KiB1,046405

CGOpenMPRuntimeNVPTX.cppD22-Nov-202314.7 KiB397256

CGOpenMPRuntimeNVPTX.hD22-Nov-20236.7 KiB18063

CGRecordLayout.hD22-Nov-20237.9 KiB22193

CGRecordLayoutBuilder.cppD22-Nov-202336.2 KiB861588

CGStmt.cppD22-Nov-202382.4 KiB2,2581,490

CGStmtOpenMP.cppD22-Nov-2023148.5 KiB3,6322,900

CGVTT.cppD22-Nov-20236.7 KiB179123

CGVTables.cppD22-Nov-202337.3 KiB984667

CGVTables.hD22-Nov-20234.3 KiB12056

CGValue.hD22-Nov-202318.6 KiB596380

CMakeLists.txtD22-Nov-20231.6 KiB9287

CodeGenABITypes.cppD22-Nov-20232.4 KiB6742

CodeGenAction.cppD22-Nov-202333.8 KiB879627

CodeGenFunction.cppD22-Nov-202374.8 KiB2,0101,349

CodeGenFunction.hD22-Nov-2023147.3 KiB3,5131,998

CodeGenModule.cppD22-Nov-2023162.4 KiB4,3143,001

CodeGenModule.hD22-Nov-202347.5 KiB1,267655

CodeGenPGO.cppD22-Nov-202330.5 KiB895651

CodeGenPGO.hD22-Nov-20234.5 KiB12675

CodeGenTBAA.cppD22-Nov-202311.2 KiB324214

CodeGenTBAA.hD22-Nov-20235.4 KiB15887

CodeGenTypeCache.hD22-Nov-20233 KiB10966

CodeGenTypes.cppD22-Nov-202327.5 KiB771506

CodeGenTypes.hD22-Nov-202314.7 KiB373211

CoverageMappingGen.cppD22-Nov-202339.7 KiB1,115798

CoverageMappingGen.hD22-Nov-20233.9 KiB11766

EHScopeStack.hD22-Nov-202314.5 KiB422194

ItaniumCXXABI.cppD22-Nov-2023147.6 KiB3,8782,405

MicrosoftCXXABI.cppD22-Nov-2023168.9 KiB4,1922,995

ModuleBuilder.cppD22-Nov-202310.7 KiB320218

ObjectFilePCHContainerOperations.cppD22-Nov-202312.1 KiB340257

README.txtD22-Nov-20231.8 KiB4835

SanitizerMetadata.cppD22-Nov-20233.9 KiB9669

SanitizerMetadata.hD22-Nov-20231.6 KiB5433

SwiftCallingConv.cppD22-Nov-202327.8 KiB831552

TargetInfo.cppD22-Nov-2023290.4 KiB8,0985,280

TargetInfo.hD22-Nov-20239.2 KiB22979

README.txt

1 IRgen optimization opportunities.
2 
3 //===---------------------------------------------------------------------===//
4 
5 The common pattern of
6 --
7 short x; // or char, etc
8 (x == 10)
9 --
10 generates an zext/sext of x which can easily be avoided.
11 
12 //===---------------------------------------------------------------------===//
13 
14 Bitfields accesses can be shifted to simplify masking and sign
15 extension. For example, if the bitfield width is 8 and it is
16 appropriately aligned then is is a lot shorter to just load the char
17 directly.
18 
19 //===---------------------------------------------------------------------===//
20 
21 It may be worth avoiding creation of alloca's for formal arguments
22 for the common situation where the argument is never written to or has
23 its address taken. The idea would be to begin generating code by using
24 the argument directly and if its address is taken or it is stored to
25 then generate the alloca and patch up the existing code.
26 
27 In theory, the same optimization could be a win for block local
28 variables as long as the declaration dominates all statements in the
29 block.
30 
31 NOTE: The main case we care about this for is for -O0 -g compile time
32 performance, and in that scenario we will need to emit the alloca
33 anyway currently to emit proper debug info. So this is blocked by
34 being able to emit debug information which refers to an LLVM
35 temporary, not an alloca.
36 
37 //===---------------------------------------------------------------------===//
38 
39 We should try and avoid generating basic blocks which only contain
40 jumps. At -O0, this penalizes us all the way from IRgen (malloc &
41 instruction overhead), all the way down through code generation and
42 assembly time.
43 
44 On 176.gcc:expr.ll, it looks like over 12% of basic blocks are just
45 direct branches!
46 
47 //===---------------------------------------------------------------------===//
48