You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ut_SG560D/QSSI.12/external/clang/lib/CodeGen
quectel 55794fdde8 QCM6490:Alyssa:upload QCM6490 android12 base code.
Change-Id: If3e3c4e01b19443714d880ae669aaa8b39edfff7
4 years ago
..
ABIInfo.h QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
Address.h QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
Android.bp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
BackendUtil.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGAtomic.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGBlocks.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGBlocks.h QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGBuilder.h QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGBuiltin.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGCUDABuiltin.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGCUDANV.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGCUDARuntime.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGCUDARuntime.h QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGCXX.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGCXXABI.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGCXXABI.h QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGCall.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGCall.h QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGClass.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGCleanup.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGCleanup.h QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGDebugInfo.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGDebugInfo.h QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGDecl.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGDeclCXX.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGException.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGExpr.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGExprAgg.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGExprCXX.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGExprComplex.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGExprConstant.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGExprScalar.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGLoopInfo.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGLoopInfo.h QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGObjC.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGObjCGNU.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGObjCMac.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGObjCRuntime.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGObjCRuntime.h QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGOpenCLRuntime.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGOpenCLRuntime.h QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGOpenMPRuntime.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGOpenMPRuntime.h QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGOpenMPRuntimeNVPTX.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGOpenMPRuntimeNVPTX.h QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGRecordLayout.h QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGRecordLayoutBuilder.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGStmt.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGStmtOpenMP.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGVTT.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGVTables.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGVTables.h QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CGValue.h QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CMakeLists.txt QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CodeGenABITypes.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CodeGenAction.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CodeGenFunction.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CodeGenFunction.h QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CodeGenModule.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CodeGenModule.h QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CodeGenPGO.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CodeGenPGO.h QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CodeGenTBAA.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CodeGenTBAA.h QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CodeGenTypeCache.h QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CodeGenTypes.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CodeGenTypes.h QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CoverageMappingGen.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
CoverageMappingGen.h QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
EHScopeStack.h QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
ItaniumCXXABI.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
MicrosoftCXXABI.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
ModuleBuilder.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
ObjectFilePCHContainerOperations.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
README.txt QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
SanitizerMetadata.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
SanitizerMetadata.h QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
SwiftCallingConv.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
TargetInfo.cpp QCM6490:Alyssa:upload QCM6490 android12 base code. 4 years ago
TargetInfo.h QCM6490:Alyssa:upload QCM6490 android12 base code. 4 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!

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