summaryrefslogtreecommitdiff
path: root/lib/CodeGen
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2019-08-20 17:59:23 +0000
committerDimitry Andric <dim@FreeBSD.org>2019-08-20 17:59:23 +0000
commit9a83721404652cea39e9f02ae3e3b5c964602a5c (patch)
tree23e9541ce27049a103f6ed046be61592123e02c9 /lib/CodeGen
parent676fbe8105eeb6ff4bb2ed261cb212fcfdbe7b63 (diff)
Notes
Diffstat (limited to 'lib/CodeGen')
-rw-r--r--lib/CodeGen/CMakeLists.txt106
-rw-r--r--lib/CodeGen/README.txt47
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!
-
-//===---------------------------------------------------------------------===//