summaryrefslogtreecommitdiffstats
path: root/polly/lib/CodeGen/IslExprBuilder.cpp
diff options
context:
space:
mode:
authorJohannes Doerfert <doerfert@cs.uni-saarland.de>2016-06-02 17:09:22 +0000
committerJohannes Doerfert <doerfert@cs.uni-saarland.de>2016-06-02 17:09:22 +0000
commit6393ef135ca804bef2f4519a38ef9d9d002750a9 (patch)
tree9f1c878506beb73f9fd7563a2ca728ec775bfde2 /polly/lib/CodeGen/IslExprBuilder.cpp
parent5c3ff137f19524c40f2b3bc092d3d4ea56dd0f5c (diff)
downloadbcm5719-llvm-6393ef135ca804bef2f4519a38ef9d9d002750a9.tar.gz
bcm5719-llvm-6393ef135ca804bef2f4519a38ef9d9d002750a9.zip
Temporarily promote values to i64 again
Operands of binary operations that might overflow will be temporarily promoted to i64 again, though that is not a sound solution for the problem. llvm-svn: 271538
Diffstat (limited to 'polly/lib/CodeGen/IslExprBuilder.cpp')
-rw-r--r--polly/lib/CodeGen/IslExprBuilder.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/polly/lib/CodeGen/IslExprBuilder.cpp b/polly/lib/CodeGen/IslExprBuilder.cpp
index 80229d0aa96..ba616562982 100644
--- a/polly/lib/CodeGen/IslExprBuilder.cpp
+++ b/polly/lib/CodeGen/IslExprBuilder.cpp
@@ -74,7 +74,10 @@ Value *IslExprBuilder::getOverflowState() const {
Value *IslExprBuilder::createBinOp(BinaryOperator::BinaryOps Opc, Value *LHS,
Value *RHS, const Twine &Name) {
- unifyTypes(LHS, RHS);
+ // @TODO Temporarily promote types of potentially overflowing binary
+ // operations to at least i64.
+ Value *I64C = Builder.getInt64(0);
+ unifyTypes(LHS, RHS, I64C);
// Handle the plain operation (without overflow tracking) first.
if (!OverflowState) {
OpenPOWER on IntegriCloud