aboutsummaryrefslogtreecommitdiff
path: root/include/llvm/Transforms
diff options
context:
space:
mode:
authorDerek Schuff <dschuff@chromium.org>2013-05-10 17:11:46 -0700
committerDerek Schuff <dschuff@chromium.org>2013-05-10 17:11:46 -0700
commita0efa09c7ed20cc0ab394f3cf69383d585f7fa7b (patch)
tree7ae88ebcd88db871bbfb2d04fa808c6537705d1b /include/llvm/Transforms
parent52daf9d821c963f84dd312ff90921bfe1b1cc0a1 (diff)
PNaCl ABI: Promote illegal integer types
This pass (mostly) legalizes integer types by promoting them. It has some limitations (e.g. it can't change function types) but it is more than sufficient for what clang and SROA generate. A more significant limitation of promotion is that packed bitfields of size > 64 bits are still not handled. There are none in our tests (other than callingconv_case_by_case which doesn't require a stable pexe) but we will want to either handle them by correctly expanding them, or find a better way to error out. BUG= https://code.google.com/p/nativeclient/issues/detail?id=3360 R=eliben@chromium.org, jvoung@chromium.org Review URL: https://codereview.chromium.org/14569012
Diffstat (limited to 'include/llvm/Transforms')
-rw-r--r--include/llvm/Transforms/NaCl.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/llvm/Transforms/NaCl.h b/include/llvm/Transforms/NaCl.h
index edd641e901..0e790c1749 100644
--- a/include/llvm/Transforms/NaCl.h
+++ b/include/llvm/Transforms/NaCl.h
@@ -28,6 +28,7 @@ ModulePass *createExpandTlsConstantExprPass();
ModulePass *createExpandVarArgsPass();
ModulePass *createFlattenGlobalsPass();
ModulePass *createGlobalCleanupPass();
+FunctionPass *createPromoteIntegersPass();
ModulePass *createResolveAliasesPass();
ModulePass *createStripMetadataPass();
FunctionPass *createInsertDivideCheckPass();