[llvm-commits] CVS: llvm/lib/Bytecode/Writer/Writer.cpp
Reid Spencer
reid at x10sys.com
Sat Apr 21 11:37:02 PDT 2007
Changes in directory llvm/lib/Bytecode/Writer:
Writer.cpp updated: 1.174 -> 1.175
---
Log message:
Revert Christopher Lamb's load/store alignment changes.
---
Diffs of the changes: (+5 -27)
Writer.cpp | 32 +++++---------------------------
1 files changed, 5 insertions(+), 27 deletions(-)
Index: llvm/lib/Bytecode/Writer/Writer.cpp
diff -u llvm/lib/Bytecode/Writer/Writer.cpp:1.174 llvm/lib/Bytecode/Writer/Writer.cpp:1.175
--- llvm/lib/Bytecode/Writer/Writer.cpp:1.174 Sat Apr 21 03:16:25 2007
+++ llvm/lib/Bytecode/Writer/Writer.cpp Sat Apr 21 13:36:27 2007
@@ -616,7 +616,7 @@
unsigned Opcode = I.getOpcode();
unsigned NumOperands = I.getNumOperands();
- // Encode 'tail call' as 61
+ // Encode 'tail call' as 61, 'volatile load' as 62, and 'volatile store' as
// 63.
if (const CallInst *CI = dyn_cast<CallInst>(&I)) {
if (CI->getCallingConv() == CallingConv::C) {
@@ -632,6 +632,10 @@
} else {
Opcode = 58; // Call escape sequence.
}
+ } else if (isa<LoadInst>(I) && cast<LoadInst>(I).isVolatile()) {
+ Opcode = 62;
+ } else if (isa<StoreInst>(I) && cast<StoreInst>(I).isVolatile()) {
+ Opcode = 63;
}
// Figure out which type to encode with the instruction. Typically we want
@@ -740,32 +744,6 @@
} else if (isa<InvokeInst>(I)) {
// Invoke escape seq has at least 4 operands to encode.
++NumOperands;
- } else if (const LoadInst *LI = dyn_cast<LoadInst>(&I)) {
- // Encode attributed load as opcode 62
- // We need to encode the attributes of the load instruction as the second
- // operand. Its not really a slot, but we don't want to break the
- // instruction format for these instructions.
- if (LI->getAlignment() || LI->isVolatile()) {
- NumOperands = 2;
- Slots[1] = ((Log2_32(LI->getAlignment())+1)<<1) +
- (LI->isVolatile() ? 1 : 0);
- if (Slots[1] > MaxOpSlot)
- MaxOpSlot = Slots[1];
- Opcode = 62;
- }
- } else if (const StoreInst *SI = dyn_cast<StoreInst>(&I)) {
- // Encode attributed store as opcode 63
- // We need to encode the attributes of the store instruction as the third
- // operand. Its not really a slot, but we don't want to break the
- // instruction format for these instructions.
- if (SI->getAlignment() || SI->isVolatile()) {
- NumOperands = 3;
- Slots[2] = ((Log2_32(SI->getAlignment())+1)<<1) +
- (SI->isVolatile() ? 1 : 0);
- if (Slots[2] > MaxOpSlot)
- MaxOpSlot = Slots[2];
- Opcode = 63;
- }
}
// Decide which instruction encoding to use. This is determined primarily
More information about the llvm-commits
mailing list