aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJF Bastien <jfb@chromium.org>2013-06-02 23:54:37 -0700
committerJF Bastien <jfb@chromium.org>2013-06-02 23:54:37 -0700
commit0abed14b33c90a8622edda000e4443aa00068b5a (patch)
tree4771e52cefead9da63670b74aac3d069d87885af
parent125bbb6864c51277041e5c2faa34ec543d84544d (diff)
Revert "PNaCl ABI checker: Disallow ExtractValue and InsertValue instructions"
This reverts commit 99c2f236a1a09b6c550e91b71dabbbb0e634ea37. It broken 255.vortex. See https://codereview.chromium.org/16257002/ TBR= mseaborn@chromium.org, jvoung@chromium.org Review URL: https://codereview.chromium.org/15888014
-rw-r--r--lib/Analysis/NaCl/PNaClABIVerifyFunctions.cpp5
-rw-r--r--test/NaCl/PNaClABI/instructions.ll3
2 files changed, 2 insertions, 6 deletions
diff --git a/lib/Analysis/NaCl/PNaClABIVerifyFunctions.cpp b/lib/Analysis/NaCl/PNaClABIVerifyFunctions.cpp
index ad01ae58a2..d1d5f38405 100644
--- a/lib/Analysis/NaCl/PNaClABIVerifyFunctions.cpp
+++ b/lib/Analysis/NaCl/PNaClABIVerifyFunctions.cpp
@@ -102,9 +102,6 @@ bool PNaClABIVerifyFunctions::runOnFunction(Function &F) {
case Instruction::ExtractElement:
case Instruction::InsertElement:
case Instruction::ShuffleVector:
- // ExtractValue and InsertValue operate on struct values.
- case Instruction::ExtractValue:
- case Instruction::InsertValue:
Reporter->addError() << "Function " << F.getName() <<
" has disallowed instruction: " <<
BBI->getOpcodeName() << "\n";
@@ -135,6 +132,8 @@ bool PNaClABIVerifyFunctions::runOnFunction(Function &F) {
case Instruction::And:
case Instruction::Or:
case Instruction::Xor:
+ case Instruction::ExtractValue:
+ case Instruction::InsertValue:
// Memory instructions
case Instruction::Alloca:
case Instruction::Load:
diff --git a/test/NaCl/PNaClABI/instructions.ll b/test/NaCl/PNaClABI/instructions.ll
index 0076c3d07c..fa77746216 100644
--- a/test/NaCl/PNaClABI/instructions.ll
+++ b/test/NaCl/PNaClABI/instructions.ll
@@ -58,10 +58,7 @@ define void @vectors() {
define void @aggregates() {
; Aggregate operations
%a1 = extractvalue { i32, i32 } { i32 0, i32 0 }, 0
-; CHECK-NOT: disallowed
-; CHECK: Function aggregates has disallowed instruction: extractvalue
%a2 = insertvalue {i32, float} undef, i32 1, 0
-; CHECK-NEXT: Function aggregates has disallowed instruction: insertvalue
ret void
}