diff options
author | Tobias Grosser <tobias@grosser.es> | 2017-09-23 15:32:07 +0000 |
---|---|---|
committer | Tobias Grosser <tobias@grosser.es> | 2017-09-23 15:32:07 +0000 |
commit | 75d133f0ac5ff201d6c5e09bb37ae86e770bcfaf (patch) | |
tree | b241f56f6934b7d82c7ce3babf43ff4a0e881dd3 /polly/include | |
parent | fa8bad8a0f85dbf5abf0cc8f404fec13d5b1e0fa (diff) | |
download | bcm5719-llvm-75d133f0ac5ff201d6c5e09bb37ae86e770bcfaf.tar.gz bcm5719-llvm-75d133f0ac5ff201d6c5e09bb37ae86e770bcfaf.zip |
[IslExprBuilder] Do not generate RTC with more than 64 bit
Such RTCs may introduce integer wrapping intrinsics with more than 64 bit,
which are translated to library calls on AOSP that are not part of the
runtime and will consequently cause linker errors.
Thanks to Eli Friedman for reporting this issue and reducing the test case.
llvm-svn: 314065
Diffstat (limited to 'polly/include')
-rw-r--r-- | polly/include/polly/CodeGen/IslExprBuilder.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/polly/include/polly/CodeGen/IslExprBuilder.h b/polly/include/polly/CodeGen/IslExprBuilder.h index ce606c1c5e6..c0364638548 100644 --- a/polly/include/polly/CodeGen/IslExprBuilder.h +++ b/polly/include/polly/CodeGen/IslExprBuilder.h @@ -17,6 +17,7 @@ #include "llvm/ADT/MapVector.h" #include "isl/ast.h" +#include "isl/isl-noexceptions.h" namespace llvm { class DataLayout; @@ -184,6 +185,13 @@ public: /// @return The llvm::Value* containing the result of the computation. llvm::Value *createAccessAddress(__isl_take isl_ast_expr *Expr); + /// Check if an @p Expr contains integer constants larger than 64 bit. + /// + /// @param Expr The expression to check. + /// + /// @return True if the ast expression is larger than 64 bit. + bool hasLargeInts(isl::ast_expr Expr); + private: Scop &S; |