Mercurial > projects > ldc
comparison CMakeLists.txt @ 1275:bedf0bfb8fdb
Implement first D-specific optimization pass: -simplify-drtcalls.
It uses the machinery of the standard -simplify-libcalls pass, but optimizes
calls to the D runtime instead of calls to C libraries.
At the moment, these optimizations are implemented by this pass:
- Avoid the runtime call for `arr.length = newlen` if it can determine that
the new length isn't longer than the old one.
- Ditto for `cast(T[]) arr` if it will clearly always succeed.
(e.g. if the length of the original array is zero, or if the old element
size is a multiple of the new element size)
author | Frits van Bommel <fvbommel wxs.nl> |
---|---|
date | Tue, 28 Apr 2009 21:58:06 +0200 |
parents | 6af2359b433a |
children | 24b33fdc7c0c |
comparison
equal
deleted
inserted
replaced
1274:4ff9ab0d472c | 1275:bedf0bfb8fdb |
---|---|
133 | 133 |
134 include_directories(. ${DMDFE_PATH} ${DMDFE_PATH}/root ${PROJECT_BINARY_DIR}/${DMDFE_PATH} ${PROJECT_BINARY_DIR} ${LLVM_INSTDIR}/include) | 134 include_directories(. ${DMDFE_PATH} ${DMDFE_PATH}/root ${PROJECT_BINARY_DIR}/${DMDFE_PATH} ${PROJECT_BINARY_DIR} ${LLVM_INSTDIR}/include) |
135 | 135 |
136 file(GLOB FE_SRC ${DMDFE_PATH}/*.c) | 136 file(GLOB FE_SRC ${DMDFE_PATH}/*.c) |
137 file(GLOB FE_SRC_ROOT ${DMDFE_PATH}/root/*.c) | 137 file(GLOB FE_SRC_ROOT ${DMDFE_PATH}/root/*.c) |
138 file(GLOB GEN_SRC gen/*.cpp) | 138 file(GLOB_RECURSE GEN_SRC gen/*.cpp) |
139 file(GLOB IR_SRC ir/*.cpp) | 139 file(GLOB IR_SRC ir/*.cpp) |
140 # exclude idgen and impcnvgen and generated sources, just in case | 140 # exclude idgen and impcnvgen and generated sources, just in case |
141 list(REMOVE_ITEM FE_SRC | 141 list(REMOVE_ITEM FE_SRC |
142 ${PROJECT_SOURCE_DIR}/${DMDFE_PATH}/idgen.c | 142 ${PROJECT_SOURCE_DIR}/${DMDFE_PATH}/idgen.c |
143 ${PROJECT_SOURCE_DIR}/${DMDFE_PATH}/impcnvgen.c | 143 ${PROJECT_SOURCE_DIR}/${DMDFE_PATH}/impcnvgen.c |