diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2019-08-20 17:59:23 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2019-08-20 17:59:23 +0000 |
commit | 9a83721404652cea39e9f02ae3e3b5c964602a5c (patch) | |
tree | 23e9541ce27049a103f6ed046be61592123e02c9 /lib/CodeGen | |
parent | 676fbe8105eeb6ff4bb2ed261cb212fcfdbe7b63 (diff) |
Notes
Diffstat (limited to 'lib/CodeGen')
-rw-r--r-- | lib/CodeGen/CMakeLists.txt | 106 | ||||
-rw-r--r-- | lib/CodeGen/README.txt | 47 |
2 files changed, 0 insertions, 153 deletions
diff --git a/lib/CodeGen/CMakeLists.txt b/lib/CodeGen/CMakeLists.txt deleted file mode 100644 index 29c6793c601e..000000000000 --- a/lib/CodeGen/CMakeLists.txt +++ /dev/null @@ -1,106 +0,0 @@ -set(LLVM_LINK_COMPONENTS - Analysis - BitReader - BitWriter - Core - Coroutines - Coverage - IPO - IRReader - AggressiveInstCombine - InstCombine - Instrumentation - LTO - Linker - MC - ObjCARCOpts - Object - Passes - ProfileData - ScalarOpts - Support - Target - TransformUtils - ) - -# In a standard Clang+LLVM build, we need to generate intrinsics before -# building codegen. In a standalone build, LLVM is already built and we don't -# need this dependency. Furthermore, LLVM doesn't export it so we can't have -# this dependency. -set(codegen_deps intrinsics_gen) -if (CLANG_BUILT_STANDALONE) - set(codegen_deps) -endif() - -if (MSVC) - set_source_files_properties(CodeGenModule.cpp PROPERTIES COMPILE_FLAGS /bigobj) -endif() - -add_clang_library(clangCodeGen - BackendUtil.cpp - CGAtomic.cpp - CGBlocks.cpp - CGBuiltin.cpp - CGCUDANV.cpp - CGCUDARuntime.cpp - CGCXX.cpp - CGCXXABI.cpp - CGCall.cpp - CGClass.cpp - CGCleanup.cpp - CGCoroutine.cpp - CGDebugInfo.cpp - CGDecl.cpp - CGDeclCXX.cpp - CGException.cpp - CGExpr.cpp - CGExprAgg.cpp - CGExprCXX.cpp - CGExprComplex.cpp - CGExprConstant.cpp - CGExprScalar.cpp - CGGPUBuiltin.cpp - CGLoopInfo.cpp - CGNonTrivialStruct.cpp - CGObjC.cpp - CGObjCGNU.cpp - CGObjCMac.cpp - CGObjCRuntime.cpp - CGOpenCLRuntime.cpp - CGOpenMPRuntime.cpp - CGOpenMPRuntimeNVPTX.cpp - CGRecordLayoutBuilder.cpp - CGStmt.cpp - CGStmtOpenMP.cpp - CGVTT.cpp - CGVTables.cpp - CodeGenABITypes.cpp - CodeGenAction.cpp - CodeGenFunction.cpp - CodeGenModule.cpp - CodeGenPGO.cpp - CodeGenTBAA.cpp - CodeGenTypes.cpp - ConstantInitBuilder.cpp - CoverageMappingGen.cpp - ItaniumCXXABI.cpp - MacroPPCallbacks.cpp - MicrosoftCXXABI.cpp - ModuleBuilder.cpp - ObjectFilePCHContainerOperations.cpp - SanitizerMetadata.cpp - SwiftCallingConv.cpp - TargetInfo.cpp - VarBypassDetector.cpp - - DEPENDS - ${codegen_deps} - - LINK_LIBS - clangAnalysis - clangAST - clangBasic - clangFrontend - clangLex - clangSerialization - ) diff --git a/lib/CodeGen/README.txt b/lib/CodeGen/README.txt deleted file mode 100644 index e6d61095bf23..000000000000 --- a/lib/CodeGen/README.txt +++ /dev/null @@ -1,47 +0,0 @@ -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! - -//===---------------------------------------------------------------------===// |