summaryrefslogtreecommitdiffstats
path: root/polly/include
diff options
context:
space:
mode:
authorTobias Grosser <tobias@grosser.es>2017-09-23 15:32:07 +0000
committerTobias Grosser <tobias@grosser.es>2017-09-23 15:32:07 +0000
commit75d133f0ac5ff201d6c5e09bb37ae86e770bcfaf (patch)
treeb241f56f6934b7d82c7ce3babf43ff4a0e881dd3 /polly/include
parentfa8bad8a0f85dbf5abf0cc8f404fec13d5b1e0fa (diff)
downloadbcm5719-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.h8
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;
OpenPOWER on IntegriCloud