diff options
author | JF Bastien <jfb@chromium.org> | 2013-06-02 23:54:37 -0700 |
---|---|---|
committer | JF Bastien <jfb@chromium.org> | 2013-06-02 23:54:37 -0700 |
commit | 0abed14b33c90a8622edda000e4443aa00068b5a (patch) | |
tree | 4771e52cefead9da63670b74aac3d069d87885af | |
parent | 125bbb6864c51277041e5c2faa34ec543d84544d (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.cpp | 5 | ||||
-rw-r--r-- | test/NaCl/PNaClABI/instructions.ll | 3 |
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 } |