summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2012-08-31 15:34:59 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2012-08-31 15:34:59 +0000
commit96f87069c4f02f727e635d77fb326eb2079b4195 (patch)
treea3158251fec1682efb01fd9941bda6b43864f477 /llvm/lib/CodeGen
parent179e5ddae10cd0823c852ef142b86f4cf4362467 (diff)
downloadbcm5719-llvm-96f87069c4f02f727e635d77fb326eb2079b4195.tar.gz
bcm5719-llvm-96f87069c4f02f727e635d77fb326eb2079b4195.zip
Don't enforce ordered inline asm operands.
I was too optimistic, inline asm can have tied operands that don't follow the def order. Fixes PR13742. llvm-svn: 162998
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r--llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp10
1 files changed, 0 insertions, 10 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp b/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp
index 4d09c444945..5399a51557b 100644
--- a/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp
@@ -895,7 +895,6 @@ EmitSpecialNode(SDNode *Node, bool IsClone, bool IsCloned,
// Remember to operand index of the group flags.
SmallVector<unsigned, 8> GroupIdx;
- unsigned PrevDefGroup = 0;
// Add all of the operand registers to the instruction.
for (unsigned i = InlineAsm::Op_FirstOperand; i != NumOps;) {
@@ -944,15 +943,6 @@ EmitSpecialNode(SDNode *Node, bool IsClone, bool IsCloned,
if (InlineAsm::getKind(Flags) == InlineAsm::Kind_RegUse) {
unsigned DefGroup = 0;
if (InlineAsm::isUseOperandTiedToDef(Flags, DefGroup)) {
- // Check that the def groups are monotonically increasing.
- // Otherwise, the tied uses and defs won't line up, and
- // MI::findTiedOperandIdx() will find the wrong operand. This
- // should be automatically enforced by the front ends when
- // translating "+" constraints into tied def+use pairs.
- assert(DefGroup >= PrevDefGroup &&
- "Tied inline asm operands must be in increasing order.");
- PrevDefGroup = DefGroup;
-
unsigned DefIdx = GroupIdx[DefGroup] + 1;
unsigned UseIdx = GroupIdx.back() + 1;
for (unsigned j = 0; j != NumVals; ++j) {
OpenPOWER on IntegriCloud