Name Date Size #Lines LOC

..12-Nov-2023-

ABIInfo.hH A D12-Nov-20235.1 KiB14580

Address.hH A D12-Nov-20236 KiB184120

BackendUtil.cppH A D12-Nov-202352.2 KiB1,3141,066

CGAtomic.cppH A D12-Nov-202389.3 KiB2,1791,723

CGBlocks.cppH A D12-Nov-2023108.6 KiB2,9041,946

CGBlocks.hH A D12-Nov-202310 KiB324222

CGBuilder.hH A D12-Nov-202316.3 KiB380275

CGBuiltin.cppH A D12-Nov-2023821.8 KiB19,80517,092

CGCUDANV.cppH A D12-Nov-202351.2 KiB1,220880

CGCUDARuntime.cppH A D08-May-20221.5 KiB4624

CGCUDARuntime.hH A D12-Nov-20234.1 KiB13175

CGCXX.cppH A D08-May-202211.8 KiB308181

CGCXXABI.cppH A D12-Nov-202313.2 KiB357255

CGCXXABI.hH A D12-Nov-202328.8 KiB685337

CGCall.cppH A D12-Nov-2023221.5 KiB5,6984,010

CGCall.hH A D12-Nov-202311.6 KiB384276

CGClass.cppH A D12-Nov-2023117.2 KiB3,0482,123

CGCleanup.cppH A D12-Nov-202351 KiB1,383870

CGCleanup.hH A D12-Nov-202319.2 KiB636406

CGCoroutine.cppH A D12-Nov-202327.8 KiB739480

CGDebugInfo.cppH A D12-Nov-2023221.3 KiB5,7674,294

CGDebugInfo.hH A D12-Nov-202337.4 KiB869444

CGDecl.cppH A D12-Nov-2023104.6 KiB2,7201,938

CGDeclCXX.cppH A D12-Nov-202345 KiB1,142749

CGException.cppH A D12-Nov-202384.6 KiB2,2831,517

CGExpr.cppH A D12-Nov-2023222.7 KiB5,6394,182

CGExprAgg.cppH A D12-Nov-202383.1 KiB2,2171,542

CGExprCXX.cppH A D12-Nov-202391.2 KiB2,3251,563

CGExprComplex.cppH A D12-Nov-202352.3 KiB1,3631,049

CGExprConstant.cppH A D12-Nov-202387.5 KiB2,3771,716

CGExprScalar.cppH A D12-Nov-2023211.7 KiB5,3783,851

CGGPUBuiltin.cppH A D12-Nov-20238.3 KiB216133

CGHLSLRuntime.cppH A D12-Nov-202316.8 KiB460344

CGHLSLRuntime.hH A D12-Nov-20233 KiB10666

CGLoopInfo.cppH A D12-Nov-202330.7 KiB843675

CGLoopInfo.hH A D08-May-202210.9 KiB304141

CGNonTrivialStruct.cppH A D12-Nov-202341.2 KiB1,001794

CGObjC.cppH A D12-Nov-2023155.9 KiB4,1072,750

CGObjCGNU.cppH A D12-Nov-2023172.1 KiB4,2253,024

CGObjCMac.cppH A D12-Nov-2023305.2 KiB7,9325,127

CGObjCRuntime.cppH A D12-Nov-202318 KiB483332

CGObjCRuntime.hH A D12-Nov-202316.5 KiB373208

CGOpenCLRuntime.cppH A D12-Nov-20237.3 KiB192142

CGOpenCLRuntime.hH A D12-Nov-20233.7 KiB10853

CGOpenMPRuntime.cppH A D12-Nov-2023531 KiB12,68610,182

CGOpenMPRuntime.hH A D12-Nov-2023105.4 KiB2,270821

CGOpenMPRuntimeGPU.cppH A D12-Nov-2023150.3 KiB3,6722,746

CGOpenMPRuntimeGPU.hH A D12-Nov-202319.6 KiB429154

CGRecordLayout.hH A D12-Nov-20238.5 KiB239100

CGRecordLayoutBuilder.cppH A D12-Nov-202344.1 KiB1,055703

CGStmt.cppH A D12-Nov-2023107.9 KiB2,9212,027

CGStmtOpenMP.cppH A D12-Nov-2023330.2 KiB7,8756,458

CGVTT.cppH A D12-Nov-20236.8 KiB177125

CGVTables.cppH A D12-Nov-202353.8 KiB1,356906

CGVTables.hH A D12-Nov-20236.6 KiB16983

CGValue.hH A D12-Nov-202322.1 KiB677446

CMakeLists.txtH A D12-Nov-20231.6 KiB10399

CodeGenABITypes.cppH A D08-May-20225 KiB13193

CodeGenAction.cppH A D12-Nov-202348.5 KiB1,274918

CodeGenFunction.cppH A D12-Nov-2023109.8 KiB2,8921,994

CodeGenFunction.hH A D12-Nov-2023210.2 KiB4,8832,854

CodeGenModule.cppH A D12-Nov-2023274.6 KiB7,2175,138

CodeGenModule.hH A D12-Nov-202369 KiB1,752868

CodeGenPGO.cppH A D12-Nov-202338.3 KiB1,126833

CodeGenPGO.hH A D12-Nov-20234.5 KiB12574

CodeGenTBAA.cppH A D12-Nov-202318.6 KiB501337

CodeGenTBAA.hH A D12-Nov-20239.2 KiB257145

CodeGenTypeCache.hH A D12-Nov-20233.6 KiB13479

CodeGenTypes.cppH A D12-Nov-202335.5 KiB971680

CodeGenTypes.hH A D12-Nov-202313.5 KiB316158

ConstantEmitter.hH A D12-Nov-20236.8 KiB18689

ConstantInitBuilder.cppH A D12-Nov-202310.2 KiB299220

CoverageMappingGen.cppH A D12-Nov-202365.6 KiB1,7921,253

CoverageMappingGen.hH A D12-Nov-20235.8 KiB179103

EHScopeStack.hH A D08-May-202214.5 KiB427197

ItaniumCXXABI.cppH A D12-Nov-2023189.6 KiB4,8703,091

MacroPPCallbacks.cppH A D12-Nov-20236.4 KiB200146

MacroPPCallbacks.hH A D12-Nov-20234.5 KiB12250

MicrosoftCXXABI.cppH A D12-Nov-2023183.1 KiB4,5283,216

ModuleBuilder.cppH A D12-Nov-202312.9 KiB374264

ObjectFilePCHContainerOperations.cppH A D12-Nov-202314 KiB389296

PatternInit.cppH A D12-Nov-20234.1 KiB8452

PatternInit.hH A D08-May-2022722 2813

README.txtH A D08-May-20221.8 KiB4835

SanitizerMetadata.cppH A D12-Nov-20234.2 KiB10977

SanitizerMetadata.hH A D12-Nov-20231.6 KiB5332

SwiftCallingConv.cppH A D12-Nov-202330.2 KiB878573

TargetInfo.cppH A D12-Nov-2023459.9 KiB12,5288,532

TargetInfo.hH A D12-Nov-202316.5 KiB385161

VarBypassDetector.cppH A D12-Nov-20235.1 KiB168121

VarBypassDetector.hH A D12-Nov-20232.3 KiB7131

README.txt

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