[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp AlphaISelDAGToDAG.cpp AlphaISelLowering.cpp AlphaLLRP.cpp AlphaRegisterInfo.cpp
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.63 -> 1.64 AlphaISelDAGToDAG.cpp updated: 1.68 -> 1.69 AlphaISelLowering.cpp updated: 1.85 -> 1.86 AlphaLLRP.cpp updated: 1.7 -> 1.8 AlphaRegisterInfo.cpp updated: 1.64 -> 1.65 --- Log message: Removed tabs everywhere except autogenerated & external files. Add make target for tabs checking. --- Diffs of the changes: (+207 -205) AlphaAsmPrinter.cpp | 16 ++-- AlphaISelDAGToDAG.cpp | 108 ++-- AlphaISelLowering.cpp | 79 ++-- AlphaLLRP.cpp | 189 +- AlphaRegisterInfo.cpp | 20 ++--- 5 files changed, 207 insertions(+), 205 deletions(-) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.63 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.64 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.63 Tue Feb 13 17:41:16 2007 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Mon Apr 16 13:10:22 2007 @@ -53,9 +53,9 @@ bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo, unsigned AsmVariant, const char *ExtraCode); bool PrintAsmMemoryOperand(const MachineInstr *MI, - unsigned OpNo, - unsigned AsmVariant, - const char *ExtraCode); + unsigned OpNo, + unsigned AsmVariant, + const char *ExtraCode); }; } // end of anonymous namespace @@ -278,16 +278,16 @@ /// PrintAsmOperand - Print out an operand for an inline asm expression. /// bool AlphaAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo, -unsigned AsmVariant, -const char *ExtraCode) { + unsigned AsmVariant, + const char *ExtraCode) { printOperand(MI, OpNo); return false; } bool AlphaAsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI, - unsigned OpNo, - unsigned AsmVariant, - const char *ExtraCode) { +unsigned OpNo, +unsigned AsmVariant, +const char *ExtraCode) { if (ExtraCode && ExtraCode[0]) return true; // Unknown modifier. O << "0("; Index: llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp diff -u llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp:1.68 llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp:1.69 --- llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp:1.68Wed Jan 24 15:09:16 2007 +++ llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp Mon Apr 16 13:10:22 2007 @@ -50,7 +50,7 @@ static int64_t get_ldah16(int64_t x) { int64_t y = x / IMM_MULT; if (x % IMM_MULT > IMM_HIGH) - ++y; +++y; return y; } @@ -145,7 +145,7 @@ public: AlphaDAGToDAGISel(TargetMachine &TM) : SelectionDAGISel(AlphaLowering), - AlphaLowering(*(AlphaTargetLowering*)(TM.getTargetLowering())) +AlphaLowering(*(AlphaTargetLowering*)(TM.getTargetLowering())) {} /// getI64Imm - Return a target constant with the specified value, of type @@ -177,7 +177,7 @@ default: return true; case 'm': // memory Op0 = Op; - AddToISelQueue(Op0); +AddToISelQueue(Op0); break; } @@ -203,7 +203,7 @@ MachineFunction* MF = BB->getParent(); unsigned GP = 0; for(MachineFunction::livein_iterator ii = MF->livein_begin(), - ee = MF->livein_end(); ii != ee; ++ii) +ee = MF->livein_end(); ii != ee; ++ii) if (ii->first == Alpha::R29) { GP = ii->second; break; @@ -219,7 +219,7 @@ MachineFunction* MF = BB->getParent(); unsigned RA = 0; for(MachineFunction::livein_iterator ii = MF->livein_begin(), - ee = MF->livein_end(); ii != ee; ++ii) +ee = MF->livein_end(); ii != ee; ++ii) if (ii->first == Alpha::R26) { RA = ii->second; break; @@ -283,16 +283,16 @@ AddToISelQueue(N1); AddToISelQueue(N2); Chain = CurDAG->getCopyToReg(Chain, Alpha::R24, N1, -SDOperand(0,0)); + SDOperand(0,0)); Chain = CurDAG->getCopyToReg(Chain, Alpha::R25, N2, -Chain.getValue(1)); + Chain.getValue(1)); Chain = CurDAG->getCopyToReg(Chain, Alpha::R27, N0, -Chain.getValue(1)); + Chain.getValue(1)); SDNode *CNode = CurDAG->getTargetNode(Alpha::JSRs, MVT::Other, MVT::Flag, Chain, Chain.getValue(1));
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.62 -> 1.63 --- Log message: Well this isn't as ugly and it works better. At least gcc bootstraps again --- Diffs of the changes: (+70 -71) AlphaAsmPrinter.cpp | 141 +--- 1 files changed, 70 insertions(+), 71 deletions(-) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.62 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.63 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.62 Wed Jan 24 15:09:16 2007 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Tue Feb 13 17:41:16 2007 @@ -112,9 +112,13 @@ O << MO.getSymbolName(); return; - case MachineOperand::MO_GlobalAddress: -O << Mang->getValueName(MO.getGlobal()); + case MachineOperand::MO_GlobalAddress: { +GlobalValue *GV = MO.getGlobal(); +O << Mang->getValueName(GV); +if (GV->isDeclaration() && GV->hasExternalWeakLinkage()) + ExtWeakSymbols.insert(GV); return; + } case MachineOperand::MO_JumpTableIndex: O << TAI->getPrivateGlobalPrefix() << "JTI" << getFunctionNumber() @@ -189,88 +193,83 @@ bool AlphaAsmPrinter::doInitialization(Module &M) { - AsmPrinter::doInitialization(M); if(TM.getSubtarget().hasCT()) O << "\t.arch ev6\n"; //This might need to be ev67, so leave this test here else O << "\t.arch ev6\n"; O << "\t.set noat\n"; + AsmPrinter::doInitialization(M); return false; } bool AlphaAsmPrinter::doFinalization(Module &M) { const TargetData *TD = TM.getTargetData(); - for (Module::const_global_iterator I = M.global_begin(), E = M.global_end(); I != E; ++I) -if (I->hasInitializer()) { // External global require no code - // Check to see if this is a special global used by LLVM, if so, emit it. - if (EmitSpecialLLVMGlobal(I)) -continue; - - O << "\n\n"; - std::string name = Mang->getValueName(I); - Constant *C = I->getInitializer(); - unsigned Size = TD->getTypeSize(C->getType()); - // unsigned Align = TD->getPreferredTypeAlignmentShift(C->getType()); - unsigned Align = TD->getPreferredAlignmentLog(I); - - if (C->isNullValue() && - (I->hasLinkOnceLinkage() || I->hasInternalLinkage() || - I->hasWeakLinkage() /* FIXME: Verify correct */)) { -SwitchToDataSection("\t.section .data", I); -if (I->hasInternalLinkage()) - O << "\t.local " << name << "\n"; - -O << "\t.comm " << name << "," << TD->getTypeSize(C->getType()) - << "," << (1 << Align) - << "\n"; - } else { -switch (I->getLinkage()) { -case GlobalValue::LinkOnceLinkage: -case GlobalValue::WeakLinkage: // FIXME: Verify correct for weak. - // Nonnull linkonce -> weak - O << "\t.weak " << name << "\n"; - O << "\t.section\t.llvm.linkonce.d." << name << ",\"aw\",@progbits\n"; - SwitchToDataSection("", I); - break; -case GlobalValue::AppendingLinkage: - // FIXME: appending linkage variables should go into a section of - // their name or something. For now, just emit them as external. -case GlobalValue::ExternalLinkage: - // If external or appending, declare as a global symbol - O << "\t.globl " << name << "\n"; - // FALL THROUGH -case GlobalValue::InternalLinkage: - SwitchToDataSection(C->isNullValue() ? "\t.section .bss" : - "\t.section .data", I); - break; -case GlobalValue::GhostLinkage: - cerr << "GhostLinkage cannot appear in AlphaAsmPrinter!\n"; - abort(); -case GlobalValue::DLLImportLinkage: - cerr << "DLLImport linkage is not supported by this target!\n"; - abort(); -case GlobalValue::DLLExportLinkage: - cerr << "DLLExport linkage is not supported by this target!\n"; - abort(); -default: - assert(0 && "Unknown linkage type!"); -} - -EmitAlignment(Align); -O << "\t.type " << name << ",@object\n"; -O << "\t.size " << name << "," << Size << "\n"; -O << name << ":\n"; -EmitGlobalConstant(C); - } -} + for (Module::const_global_iterator I = M.global_begin(), E = M.global_end(); I != E; ++I) { - for (Module::const_iterator I = M.begin(), E = M.end(); I != E; ++I) -if (I->hasExternalWeakLinkage()) { - O << "\n\n"; - std::string name = Mang->getValueName(I); - O << "\t.weak " << name << "\n"; +if (!I->hasInitializer()) continue; // External global require no code + +// Check to see if this is a special global used by LLVM, if so, emit it. +if (EmitSpecialLLVMGlobal(I)) + continue; + +std::string name = Mang->getValueName(I); +Constant *C = I->getInitializer(); +unsigned Size = TD->getTypeSize(C->getType()
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.60 -> 1.61 --- Log message: Renamed getTypeAlignmentShift() to getPreferredTypeAlignmentShift(). --- Diffs of the changes: (+1 -1) AlphaAsmPrinter.cpp |2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.60 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.61 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.60 Tue Dec 19 16:59:25 2006 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Wed Jan 24 01:03:39 2007 @@ -212,7 +212,7 @@ std::string name = Mang->getValueName(I); Constant *C = I->getInitializer(); unsigned Size = TD->getTypeSize(C->getType()); - // unsigned Align = TD->getTypeAlignmentShift(C->getType()); + // unsigned Align = TD->getPreferredTypeAlignmentShift(C->getType()); unsigned Align = TD->getPreferredAlignmentLog(I); if (C->isNullValue() && ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp AlphaCodeEmitter.cpp AlphaISelDAGToDAG.cpp AlphaLLRP.cpp
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.59 -> 1.60 AlphaCodeEmitter.cpp updated: 1.20 -> 1.21 AlphaISelDAGToDAG.cpp updated: 1.63 -> 1.64 AlphaLLRP.cpp updated: 1.6 -> 1.7 --- Log message: eliminate static ctors for Statistic objects. --- Diffs of the changes: (+10 -15) AlphaAsmPrinter.cpp |5 +++-- AlphaCodeEmitter.cpp |7 +-- AlphaISelDAGToDAG.cpp |1 - AlphaLLRP.cpp | 12 ++-- 4 files changed, 10 insertions(+), 15 deletions(-) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.59 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.60 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.59 Thu Dec 7 17:55:55 2006 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Tue Dec 19 16:59:25 2006 @@ -12,6 +12,7 @@ // //===--===// +#define DEBUG_TYPE "asm-printer" #include "Alpha.h" #include "AlphaInstrInfo.h" #include "AlphaTargetMachine.h" @@ -26,9 +27,9 @@ #include "llvm/ADT/Statistic.h" using namespace llvm; +STATISTIC(EmittedInsts, "Number of machine instrs printed"); + namespace { - Statistic EmittedInsts("asm-printer", "Number of machine instrs printed"); - struct VISIBILITY_HIDDEN AlphaAsmPrinter : public AsmPrinter { /// Unique incrementer for label values for referencing Global values. Index: llvm/lib/Target/Alpha/AlphaCodeEmitter.cpp diff -u llvm/lib/Target/Alpha/AlphaCodeEmitter.cpp:1.20 llvm/lib/Target/Alpha/AlphaCodeEmitter.cpp:1.21 --- llvm/lib/Target/Alpha/AlphaCodeEmitter.cpp:1.20 Thu Dec 7 16:21:48 2006 +++ llvm/lib/Target/Alpha/AlphaCodeEmitter.cpp Tue Dec 19 16:59:25 2006 @@ -12,6 +12,7 @@ // //===--===// +#define DEBUG_TYPE "alpha-emitter" #include "AlphaTargetMachine.h" #include "AlphaRelocations.h" #include "Alpha.h" @@ -22,15 +23,9 @@ #include "llvm/CodeGen/Passes.h" #include "llvm/Function.h" #include "llvm/Support/Debug.h" -#include "llvm/ADT/Statistic.h" using namespace llvm; namespace { - Statistic - NumEmitted("alpha-emitter", "Number of machine instructions emitted"); -} - -namespace { class AlphaCodeEmitter : public MachineFunctionPass { const AlphaInstrInfo *II; TargetMachine &TM; Index: llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp diff -u llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp:1.63 llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp:1.64 --- llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp:1.63Thu Dec 7 16:21:48 2006 +++ llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp Tue Dec 19 16:59:25 2006 @@ -22,7 +22,6 @@ #include "llvm/CodeGen/SelectionDAG.h" #include "llvm/CodeGen/SelectionDAGISel.h" #include "llvm/Target/TargetOptions.h" -#include "llvm/ADT/Statistic.h" #include "llvm/Constants.h" #include "llvm/GlobalValue.h" #include "llvm/Intrinsics.h" Index: llvm/lib/Target/Alpha/AlphaLLRP.cpp diff -u llvm/lib/Target/Alpha/AlphaLLRP.cpp:1.6 llvm/lib/Target/Alpha/AlphaLLRP.cpp:1.7 --- llvm/lib/Target/Alpha/AlphaLLRP.cpp:1.6 Thu Dec 7 17:55:55 2006 +++ llvm/lib/Target/Alpha/AlphaLLRP.cpp Tue Dec 19 16:59:25 2006 @@ -8,10 +8,11 @@ //===--===// // // Here we check for potential replay traps introduced by the spiller -// We also align some branch targets if we can do so for free +// We also align some branch targets if we can do so for free. +// //===--===// - +#define DEBUG_TYPE "alpha-nops" #include "Alpha.h" #include "llvm/CodeGen/MachineFunctionPass.h" #include "llvm/CodeGen/MachineInstrBuilder.h" @@ -22,11 +23,10 @@ #include "llvm/Support/CommandLine.h" using namespace llvm; -namespace { - Statistic nopintro("alpha-nops", "Number of nops inserted"); - Statistic nopalign("alpha-nops-align", - "Number of nops inserted for alignment"); +STATISTIC(nopintro, "Number of nops inserted"); +STATISTIC(nopalign, "Number of nops inserted for alignment"); +namespace { cl::opt AlignAll("alpha-align-all", cl::Hidden, cl::desc("Align all blocks")); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp AlphaLLRP.cpp AlphaTargetAsmInfo.cpp
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.58 -> 1.59 AlphaLLRP.cpp updated: 1.5 -> 1.6 AlphaTargetAsmInfo.cpp updated: 1.4 -> 1.5 --- Log message: Simplify a bit --- Diffs of the changes: (+15 -30) AlphaAsmPrinter.cpp| 41 +++-- AlphaLLRP.cpp |3 +++ AlphaTargetAsmInfo.cpp |1 + 3 files changed, 15 insertions(+), 30 deletions(-) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.58 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.59 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.58 Thu Dec 7 16:21:48 2006 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Thu Dec 7 17:55:55 2006 @@ -33,20 +33,11 @@ /// Unique incrementer for label values for referencing Global values. /// -unsigned LabelNumber; AlphaAsmPrinter(std::ostream &o, TargetMachine &tm, const TargetAsmInfo *T) - : AsmPrinter(o, tm, T), LabelNumber(0) { + : AsmPrinter(o, tm, T) { } -/// We name each basic block in a Function with a unique number, so -/// that we can consistently refer to them later. This is cleared -/// at the beginning of each call to runOnMachineFunction(). -/// -typedef std::map ValueMapTy; -ValueMapTy NumberForBB; -std::string CurSection; - virtual const char *getPassName() const { return "Alpha Assembly Printer"; } @@ -54,7 +45,6 @@ void printOp(const MachineOperand &MO, bool IsCallOp = false); void printOperand(const MachineInstr *MI, int opNum); void printBaseOffsetPair (const MachineInstr *MI, int i, bool brackets=true); -void printMachineInstruction(const MachineInstr *MI); bool runOnMachineFunction(MachineFunction &F); bool doInitialization(Module &M); bool doFinalization(Module &M); @@ -136,20 +126,6 @@ } } -/// printMachineInstruction -- Print out a single Alpha MI to -/// the current output stream. -/// -void AlphaAsmPrinter::printMachineInstruction(const MachineInstr *MI) { - ++EmittedInsts; - if (printInstruction(MI)) -return; // Printer was automatically generated - - assert(0 && "Unhandled instruction in asm writer!"); - abort(); - return; -} - - /// runOnMachineFunction - This uses the printMachineInstruction() /// method to print assembly for each instruction. /// @@ -177,7 +153,7 @@ break; case Function::WeakLinkage: case Function::LinkOnceLinkage: -O << "\t.weak " << CurrentFnName << "\n"; +O << TAI->getWeakRefDirective() << CurrentFnName << "\n"; break; } @@ -188,16 +164,21 @@ // Print out code for the function. for (MachineFunction::const_iterator I = MF.begin(), E = MF.end(); I != E; ++I) { -printBasicBlockLabel(I, true); -O << '\n'; +if (I != MF.begin()) { + printBasicBlockLabel(I, true); + O << '\n'; +} for (MachineBasicBlock::const_iterator II = I->begin(), E = I->end(); II != E; ++II) { // Print the assembly for the instruction. + ++EmittedInsts; O << "\t"; - printMachineInstruction(II); + if (!printInstruction(II)) { +assert(0 && "Unhandled instruction in asm writer!"); +abort(); + } } } - ++LabelNumber; O << "\t.end " << CurrentFnName << "\n"; Index: llvm/lib/Target/Alpha/AlphaLLRP.cpp diff -u llvm/lib/Target/Alpha/AlphaLLRP.cpp:1.5 llvm/lib/Target/Alpha/AlphaLLRP.cpp:1.6 --- llvm/lib/Target/Alpha/AlphaLLRP.cpp:1.5 Wed Dec 6 11:46:32 2006 +++ llvm/lib/Target/Alpha/AlphaLLRP.cpp Thu Dec 7 17:55:55 2006 @@ -117,6 +117,9 @@ case Alpha::ALTENT: case Alpha::MEMLABEL: case Alpha::PCLABEL: +case Alpha::IDEF_I: +case Alpha::IDEF_F32: +case Alpha::IDEF_F64: --count; break; case Alpha::BR: Index: llvm/lib/Target/Alpha/AlphaTargetAsmInfo.cpp diff -u llvm/lib/Target/Alpha/AlphaTargetAsmInfo.cpp:1.4 llvm/lib/Target/Alpha/AlphaTargetAsmInfo.cpp:1.5 --- llvm/lib/Target/Alpha/AlphaTargetAsmInfo.cpp:1.4Fri Oct 6 17:52:33 2006 +++ llvm/lib/Target/Alpha/AlphaTargetAsmInfo.cppThu Dec 7 17:55:55 2006 @@ -20,4 +20,5 @@ PrivateGlobalPrefix = "$"; JumpTableDirective = ".gprel32"; JumpTableDataSection = "\t.section .rodata\n"; + WeakRefDirective = "\t.weak\t"; } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp AlphaCodeEmitter.cpp AlphaISelDAGToDAG.cpp AlphaISelLowering.cpp AlphaInstrInfo.cpp AlphaJITInfo.cpp AlphaRegisterInfo.cpp
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.57 -> 1.58 AlphaCodeEmitter.cpp updated: 1.19 -> 1.20 AlphaISelDAGToDAG.cpp updated: 1.62 -> 1.63 AlphaISelLowering.cpp updated: 1.74 -> 1.75 AlphaInstrInfo.cpp updated: 1.15 -> 1.16 AlphaJITInfo.cpp updated: 1.11 -> 1.12 AlphaRegisterInfo.cpp updated: 1.53 -> 1.54 --- Log message: What should be the last unnecessary s in the library. --- Diffs of the changes: (+42 -50) AlphaAsmPrinter.cpp |9 - AlphaCodeEmitter.cpp |5 ++--- AlphaISelDAGToDAG.cpp |3 +-- AlphaISelLowering.cpp |4 +--- AlphaInstrInfo.cpp|1 - AlphaJITInfo.cpp | 37 ++--- AlphaRegisterInfo.cpp | 33 - 7 files changed, 42 insertions(+), 50 deletions(-) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.57 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.58 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.57 Thu Dec 7 11:39:14 2006 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Thu Dec 7 16:21:48 2006 @@ -24,7 +24,6 @@ #include "llvm/Support/Compiler.h" #include "llvm/Support/Mangler.h" #include "llvm/ADT/Statistic.h" -#include using namespace llvm; namespace { @@ -105,7 +104,7 @@ return; case MachineOperand::MO_Immediate: -std::cerr << "printOp() does not handle immediate values\n"; +cerr << "printOp() does not handle immediate values\n"; abort(); return; @@ -265,13 +264,13 @@ "\t.section .data", I); break; case GlobalValue::GhostLinkage: - std::cerr << "GhostLinkage cannot appear in AlphaAsmPrinter!\n"; + cerr << "GhostLinkage cannot appear in AlphaAsmPrinter!\n"; abort(); case GlobalValue::DLLImportLinkage: - std::cerr << "DLLImport linkage is not supported by this target!\n"; + cerr << "DLLImport linkage is not supported by this target!\n"; abort(); case GlobalValue::DLLExportLinkage: - std::cerr << "DLLExport linkage is not supported by this target!\n"; + cerr << "DLLExport linkage is not supported by this target!\n"; abort(); default: assert(0 && "Unknown linkage type!"); Index: llvm/lib/Target/Alpha/AlphaCodeEmitter.cpp diff -u llvm/lib/Target/Alpha/AlphaCodeEmitter.cpp:1.19 llvm/lib/Target/Alpha/AlphaCodeEmitter.cpp:1.20 --- llvm/lib/Target/Alpha/AlphaCodeEmitter.cpp:1.19 Wed Dec 6 11:46:32 2006 +++ llvm/lib/Target/Alpha/AlphaCodeEmitter.cpp Thu Dec 7 16:21:48 2006 @@ -23,7 +23,6 @@ #include "llvm/Function.h" #include "llvm/Support/Debug.h" #include "llvm/ADT/Statistic.h" -#include using namespace llvm; namespace { @@ -158,7 +157,7 @@ rv = MO.getImmedValue(); } else if (MO.isGlobalAddress() || MO.isExternalSymbol() || MO.isConstantPoolIndex()) { -DEBUG(std::cerr << MO << " is a relocated op for " << MI << "\n";); +DOUT << MO << " is a relocated op for " << MI << "\n"; unsigned Reloc = 0; int Offset = 0; bool useGOT = false; @@ -214,7 +213,7 @@ Alpha::reloc_bsr, MO.getMachineBasicBlock())); }else { -std::cerr << "ERROR: Unknown type of MachineOperand: " << MO << "\n"; +cerr << "ERROR: Unknown type of MachineOperand: " << MO << "\n"; abort(); } Index: llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp diff -u llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp:1.62 llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp:1.63 --- llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp:1.62Thu Nov 2 14:25:49 2006 +++ llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp Thu Dec 7 16:21:48 2006 @@ -29,7 +29,6 @@ #include "llvm/Support/Debug.h" #include "llvm/Support/MathExtras.h" #include -#include #include #include using namespace llvm; @@ -115,7 +114,7 @@ unsigned at = CountLeadingZeros_64(x); uint64_t complow = 1 << (63 - at); uint64_t comphigh = 1 << (64 - at); - //std::cerr << x << ":" << complow << ":" << comphigh << "\n"; + //cerr << x << ":" << complow << ":" << comphigh << "\n"; if (abs(complow - x) <= abs(comphigh - x)) return complow; else Index: llvm/lib/Target/Alpha/AlphaISelLowering.cpp diff -u llvm/lib/Target/Alpha/AlphaISelLowering.cpp:1.74 llvm/lib/Target/Alpha/AlphaISelLowering.cpp:1.75 --- llvm/lib/Target/Alpha/AlphaISelLowering.cpp:1.74Thu Nov 2 19:18:29 2006 +++ llvm/lib/Target/Alpha/AlphaISelLowering.cpp Thu Dec 7 16:21:48 2006 @@ -22,8 +22,6 @@ #include "llvm/Function.h" #include "llvm/Module.h" #include "llvm/Support/CommandLine.h" -#include - using namespace llvm; /// AddLiveIn - This helper function adds the specified physical register to the @@ -224,7 +222,7 @@ if (ArgNo < 6) { switch (ObjectVT) { default: -std::cer
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp AlphaInstrInfo.td
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.56 -> 1.57 AlphaInstrInfo.td updated: 1.135 -> 1.136 --- Log message: Be sure to grab weak functions too, and make implicit defs comments --- Diffs of the changes: (+10 -3) AlphaAsmPrinter.cpp |7 +++ AlphaInstrInfo.td |6 +++--- 2 files changed, 10 insertions(+), 3 deletions(-) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.56 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.57 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.56 Wed Dec 6 12:19:53 2006 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Thu Dec 7 11:39:14 2006 @@ -285,6 +285,13 @@ } } + for (Module::const_iterator I = M.begin(), E = M.end(); I != E; ++I) +if (I->hasExternalWeakLinkage()) { + O << "\n\n"; + std::string name = Mang->getValueName(I); + O << "\t.weak " << name << "\n"; +} + AsmPrinter::doFinalization(M); return false; } Index: llvm/lib/Target/Alpha/AlphaInstrInfo.td diff -u llvm/lib/Target/Alpha/AlphaInstrInfo.td:1.135 llvm/lib/Target/Alpha/AlphaInstrInfo.td:1.136 --- llvm/lib/Target/Alpha/AlphaInstrInfo.td:1.135 Thu Nov 2 19:18:29 2006 +++ llvm/lib/Target/Alpha/AlphaInstrInfo.td Thu Dec 7 11:39:14 2006 @@ -140,11 +140,11 @@ //Pseudo ops for selection -def IDEF_I : PseudoInstAlpha<(ops GPRC:$RA), "#idef $RA", +def IDEF_I : PseudoInstAlpha<(ops GPRC:$RA), ";#idef $RA", [(set GPRC:$RA, (undef))], s_pseudo>; -def IDEF_F32 : PseudoInstAlpha<(ops F4RC:$RA), "#idef $RA", +def IDEF_F32 : PseudoInstAlpha<(ops F4RC:$RA), ";#idef $RA", [(set F4RC:$RA, (undef))], s_pseudo>; -def IDEF_F64 : PseudoInstAlpha<(ops F8RC:$RA), "#idef $RA", +def IDEF_F64 : PseudoInstAlpha<(ops F8RC:$RA), ";#idef $RA", [(set F8RC:$RA, (undef))], s_pseudo>; def WTF : PseudoInstAlpha<(ops variable_ops), "#wtf", [], s_pseudo>; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.55 -> 1.56 --- Log message: add #include --- Diffs of the changes: (+1 -0) AlphaAsmPrinter.cpp |1 + 1 files changed, 1 insertion(+) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.55 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.56 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.55 Wed Dec 6 11:46:32 2006 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Wed Dec 6 12:19:53 2006 @@ -21,6 +21,7 @@ #include "llvm/CodeGen/AsmPrinter.h" #include "llvm/Target/TargetAsmInfo.h" #include "llvm/Target/TargetMachine.h" +#include "llvm/Support/Compiler.h" #include "llvm/Support/Mangler.h" #include "llvm/ADT/Statistic.h" #include ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp AlphaCodeEmitter.cpp AlphaLLRP.cpp
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.54 -> 1.55 AlphaCodeEmitter.cpp updated: 1.18 -> 1.19 AlphaLLRP.cpp updated: 1.4 -> 1.5 --- Log message: Detemplatize the Statistic class. The only type it is instantiated with is 'unsigned'. --- Diffs of the changes: (+4 -4) AlphaAsmPrinter.cpp |2 +- AlphaCodeEmitter.cpp |2 +- AlphaLLRP.cpp|4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.54 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.55 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.54 Thu Nov 2 14:25:49 2006 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Wed Dec 6 11:46:32 2006 @@ -27,7 +27,7 @@ using namespace llvm; namespace { - Statistic<> EmittedInsts("asm-printer", "Number of machine instrs printed"); + Statistic EmittedInsts("asm-printer", "Number of machine instrs printed"); struct VISIBILITY_HIDDEN AlphaAsmPrinter : public AsmPrinter { Index: llvm/lib/Target/Alpha/AlphaCodeEmitter.cpp diff -u llvm/lib/Target/Alpha/AlphaCodeEmitter.cpp:1.18 llvm/lib/Target/Alpha/AlphaCodeEmitter.cpp:1.19 --- llvm/lib/Target/Alpha/AlphaCodeEmitter.cpp:1.18 Thu Nov 2 14:25:49 2006 +++ llvm/lib/Target/Alpha/AlphaCodeEmitter.cpp Wed Dec 6 11:46:32 2006 @@ -27,7 +27,7 @@ using namespace llvm; namespace { - Statistic<> + Statistic NumEmitted("alpha-emitter", "Number of machine instructions emitted"); } Index: llvm/lib/Target/Alpha/AlphaLLRP.cpp diff -u llvm/lib/Target/Alpha/AlphaLLRP.cpp:1.4 llvm/lib/Target/Alpha/AlphaLLRP.cpp:1.5 --- llvm/lib/Target/Alpha/AlphaLLRP.cpp:1.4 Mon Nov 27 17:37:22 2006 +++ llvm/lib/Target/Alpha/AlphaLLRP.cpp Wed Dec 6 11:46:32 2006 @@ -23,8 +23,8 @@ using namespace llvm; namespace { - Statistic<> nopintro("alpha-nops", "Number of nops inserted"); - Statistic<> nopalign("alpha-nops-align", + Statistic nopintro("alpha-nops", "Number of nops inserted"); + Statistic nopalign("alpha-nops-align", "Number of nops inserted for alignment"); cl::opt ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp AlphaCodeEmitter.cpp AlphaISelDAGToDAG.cpp AlphaISelLowering.cpp
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.53 -> 1.54 AlphaCodeEmitter.cpp updated: 1.17 -> 1.18 AlphaISelDAGToDAG.cpp updated: 1.61 -> 1.62 AlphaISelLowering.cpp updated: 1.72 -> 1.73 --- Log message: For PR786: http://llvm.org/PR786 : Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting fall out by removing unused variables. Remaining warnings have to do with unused functions (I didn't want to delete code without review) and unused variables in generated code. Maintainers should clean up the remaining issues when they see them. All changes pass DejaGnu tests and Olden. --- Diffs of the changes: (+0 -12) AlphaAsmPrinter.cpp |1 - AlphaCodeEmitter.cpp |5 - AlphaISelDAGToDAG.cpp |1 - AlphaISelLowering.cpp |5 - 4 files changed, 12 deletions(-) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.53 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.54 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.53 Tue Oct 24 15:32:14 2006 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Thu Nov 2 14:25:49 2006 @@ -97,7 +97,6 @@ void AlphaAsmPrinter::printOp(const MachineOperand &MO, bool IsCallOp) { const MRegisterInfo &RI = *TM.getRegisterInfo(); - int new_symbol; switch (MO.getType()) { case MachineOperand::MO_Register: Index: llvm/lib/Target/Alpha/AlphaCodeEmitter.cpp diff -u llvm/lib/Target/Alpha/AlphaCodeEmitter.cpp:1.17 llvm/lib/Target/Alpha/AlphaCodeEmitter.cpp:1.18 --- llvm/lib/Target/Alpha/AlphaCodeEmitter.cpp:1.17 Thu Jul 27 13:20:17 2006 +++ llvm/lib/Target/Alpha/AlphaCodeEmitter.cpp Thu Nov 2 14:25:49 2006 @@ -92,7 +92,6 @@ for (MachineBasicBlock::iterator I = MBB.begin(), E = MBB.end(); I != E; ++I) { MachineInstr &MI = *I; -unsigned Opcode = MI.getOpcode(); switch(MI.getOpcode()) { default: MCE.emitWordLE(getBinaryCodeForInstr(*I)); @@ -160,10 +159,6 @@ } else if (MO.isGlobalAddress() || MO.isExternalSymbol() || MO.isConstantPoolIndex()) { DEBUG(std::cerr << MO << " is a relocated op for " << MI << "\n";); -bool isExternal = MO.isExternalSymbol() || - (MO.isGlobalAddress() && - ( MO.getGlobal()->hasWeakLinkage() || - MO.getGlobal()->isExternal()) ); unsigned Reloc = 0; int Offset = 0; bool useGOT = false; Index: llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp diff -u llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp:1.61 llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp:1.62 --- llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp:1.61Tue Oct 31 17:46:56 2006 +++ llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp Thu Nov 2 14:25:49 2006 @@ -324,7 +324,6 @@ // val32 >= IMM_LOW + IMM_LOW * IMM_MULT) //always true break; //(zext (LDAH (LDA))) //Else use the constant pool -MachineConstantPool *CP = BB->getParent()->getConstantPool(); ConstantInt *C = ConstantInt::get(Type::ULongTy, uval); SDOperand CPI = CurDAG->getTargetConstantPool(C, MVT::i64); SDNode *Tmp = CurDAG->getTargetNode(Alpha::LDAHr, MVT::i64, CPI, Index: llvm/lib/Target/Alpha/AlphaISelLowering.cpp diff -u llvm/lib/Target/Alpha/AlphaISelLowering.cpp:1.72 llvm/lib/Target/Alpha/AlphaISelLowering.cpp:1.73 --- llvm/lib/Target/Alpha/AlphaISelLowering.cpp:1.72Wed Nov 1 21:05:26 2006 +++ llvm/lib/Target/Alpha/AlphaISelLowering.cpp Thu Nov 2 14:25:49 2006 @@ -175,8 +175,6 @@ SDOperand JTI = DAG.getTargetJumpTable(JT->getIndex(), PtrVT); SDOperand Zero = DAG.getConstant(0, PtrVT); - const TargetMachine &TM = DAG.getTarget(); - SDOperand Hi = DAG.getNode(AlphaISD::GPRelHi, MVT::i64, JTI, DAG.getNode(ISD::GLOBAL_OFFSET_TABLE, MVT::i64)); SDOperand Lo = DAG.getNode(AlphaISD::GPRelLo, MVT::i64, JTI, Hi); @@ -207,7 +205,6 @@ int &VarArgsOffset) { MachineFunction &MF = DAG.getMachineFunction(); MachineFrameInfo *MFI = MF.getFrameInfo(); - SSARegMap *RegMap = MF.getSSARegMap(); std::vector ArgValues; SDOperand Root = Op.getOperand(0); @@ -225,7 +222,6 @@ SDOperand ArgVal; if (ArgNo < 6) { - unsigned Vreg; switch (ObjectVT) { default: std::cerr << "Unknown Type " << ObjectVT << "\n"; @@ -480,7 +476,6 @@ //Expand only on constant case if (Op.getOperand(1).getOpcode() == ISD::Constant) { MVT::ValueType VT = Op.Val->getValueType(0); - unsigned Opc = Op.Val->getOpcode() == ISD::UREM ? ISD::UDIV : ISD::SDIV; SDOperand Tmp1 = Op.Val->getOpcode() == ISD::UREM ? BuildUDIV(Op.Val, DAG, NULL) : BuildSDIV(Op.Val, DAG, NULL); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.52 -> 1.53 --- Log message: Move getPreferredAlignmentLog from AsmPrinter to TargetData --- Diffs of the changes: (+1 -1) AlphaAsmPrinter.cpp |2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.52 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.53 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.52 Wed Oct 4 22:01:21 2006 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Tue Oct 24 15:32:14 2006 @@ -232,7 +232,7 @@ Constant *C = I->getInitializer(); unsigned Size = TD->getTypeSize(C->getType()); // unsigned Align = TD->getTypeAlignmentShift(C->getType()); - unsigned Align = getPreferredAlignmentLog(I); + unsigned Align = TD->getPreferredAlignmentLog(I); if (C->isNullValue() && (I->hasLinkOnceLinkage() || I->hasInternalLinkage() || ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.51 -> 1.52 --- Log message: Pass the MachineFunction into EmitJumpTableInfo. --- Diffs of the changes: (+1 -1) AlphaAsmPrinter.cpp |2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.51 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.52 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.51 Wed Oct 4 21:47:13 2006 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Wed Oct 4 22:01:21 2006 @@ -162,7 +162,7 @@ EmitConstantPool(MF.getConstantPool()); // Print out jump tables referenced by the function - EmitJumpTableInfo(MF.getJumpTableInfo()); + EmitJumpTableInfo(MF.getJumpTableInfo(), MF); // Print out labels for the function. const Function *F = MF.getFunction(); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.50 -> 1.51 --- Log message: use getSectionForFunction to decide which section to emit code into --- Diffs of the changes: (+5 -4) AlphaAsmPrinter.cpp |9 + 1 files changed, 5 insertions(+), 4 deletions(-) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.50 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.51 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.50 Mon Sep 18 13:01:03 2006 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Wed Oct 4 21:47:13 2006 @@ -58,7 +58,7 @@ bool runOnMachineFunction(MachineFunction &F); bool doInitialization(Module &M); bool doFinalization(Module &M); - + bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo, unsigned AsmVariant, const char *ExtraCode); bool PrintAsmMemoryOperand(const MachineInstr *MI, @@ -73,8 +73,8 @@ /// using the given target machine description. This should work /// regardless of whether the function is in SSA form. /// -FunctionPass *llvm::createAlphaCodePrinterPass (std::ostream &o, - TargetMachine &tm) { +FunctionPass *llvm::createAlphaCodePrinterPass(std::ostream &o, + TargetMachine &tm) { return new AlphaAsmPrinter(o, tm, tm.getTargetAsmInfo()); } @@ -166,7 +166,8 @@ // Print out labels for the function. const Function *F = MF.getFunction(); - SwitchToTextSection(".text", F); + SwitchToTextSection(getSectionForFunction(*F).c_str(), F); + EmitAlignment(4, F); switch (F->getLinkage()) { default: assert(0 && "Unknown linkage type!"); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp AlphaISelLowering.cpp AlphaInstrInfo.td
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.49 -> 1.50 AlphaISelLowering.cpp updated: 1.60 -> 1.61 AlphaInstrInfo.td updated: 1.123 -> 1.124 --- Log message: Jump tables on Alpha --- Diffs of the changes: (+38 -2) AlphaAsmPrinter.cpp |8 AlphaISelLowering.cpp | 20 +++- AlphaInstrInfo.td | 12 +++- 3 files changed, 38 insertions(+), 2 deletions(-) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.49 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.50 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.49 Thu Sep 14 13:23:26 2006 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Mon Sep 18 13:01:03 2006 @@ -126,6 +126,11 @@ O << Mang->getValueName(MO.getGlobal()); return; + case MachineOperand::MO_JumpTableIndex: +O << TAI->getPrivateGlobalPrefix() << "JTI" << getFunctionNumber() + << '_' << MO.getJumpTableIndex(); +return; + default: O << ""; return; @@ -156,6 +161,9 @@ // Print out constants referenced by the function EmitConstantPool(MF.getConstantPool()); + // Print out jump tables referenced by the function + EmitJumpTableInfo(MF.getJumpTableInfo()); + // Print out labels for the function. const Function *F = MF.getFunction(); SwitchToTextSection(".text", F); Index: llvm/lib/Target/Alpha/AlphaISelLowering.cpp diff -u llvm/lib/Target/Alpha/AlphaISelLowering.cpp:1.60 llvm/lib/Target/Alpha/AlphaISelLowering.cpp:1.61 --- llvm/lib/Target/Alpha/AlphaISelLowering.cpp:1.60Tue Sep 12 16:02:05 2006 +++ llvm/lib/Target/Alpha/AlphaISelLowering.cpp Mon Sep 18 13:01:03 2006 @@ -48,7 +48,7 @@ addRegisterClass(MVT::f64, Alpha::F8RCRegisterClass); addRegisterClass(MVT::f32, Alpha::F4RCRegisterClass); - setOperationAction(ISD::BRIND,MVT::i64, Expand); + // setOperationAction(ISD::BRIND,MVT::i64, Expand); setOperationAction(ISD::BR_CC,MVT::Other, Expand); setOperationAction(ISD::SELECT_CC,MVT::Other, Expand); @@ -128,6 +128,8 @@ setOperationAction(ISD::RET, MVT::Other, Custom); + setOperationAction(ISD::JumpTable, MVT::i64, Custom); + setStackPointerRegisterToSaveRestore(Alpha::R30); setOperationAction(ISD::ConstantFP, MVT::f64, Expand); @@ -162,6 +164,20 @@ } } +static SDOperand LowerJumpTable(SDOperand Op, SelectionDAG &DAG) { + MVT::ValueType PtrVT = Op.getValueType(); + JumpTableSDNode *JT = cast(Op); + SDOperand JTI = DAG.getTargetJumpTable(JT->getIndex(), PtrVT); + SDOperand Zero = DAG.getConstant(0, PtrVT); + + const TargetMachine &TM = DAG.getTarget(); + + SDOperand Hi = DAG.getNode(AlphaISD::GPRelHi, MVT::i64, JTI, +DAG.getNode(AlphaISD::GlobalBaseReg, MVT::i64)); + SDOperand Lo = DAG.getNode(AlphaISD::GPRelLo, MVT::i64, JTI, Hi); + return Lo; +} + //http://www.cs.arizona.edu/computer.help/policy/DIGITAL_unix/ //AA-PY8AC-TET1_html/callCH3.html#BLOCK21 @@ -395,6 +411,8 @@ VarArgsOffset, GP, RA); case ISD::RET: return LowerRET(Op,DAG, getVRegRA()); + case ISD::JumpTable: return LowerJumpTable(Op, DAG); + case ISD::SINT_TO_FP: { assert(MVT::i64 == Op.getOperand(0).getValueType() && "Unhandled SINT_TO_FP type in custom expander!"); Index: llvm/lib/Target/Alpha/AlphaInstrInfo.td diff -u llvm/lib/Target/Alpha/AlphaInstrInfo.td:1.123 llvm/lib/Target/Alpha/AlphaInstrInfo.td:1.124 --- llvm/lib/Target/Alpha/AlphaInstrInfo.td:1.123 Fri Aug 11 04:01:43 2006 +++ llvm/lib/Target/Alpha/AlphaInstrInfo.td Mon Sep 18 13:01:03 2006 @@ -435,7 +435,11 @@ def RETDAGp : MbrpForm< 0x1A, 0x02, (ops), "ret $$31,($$26),1", [(retflag)], s_jsr>; //Return from subroutine } -def JMP : MbrForm< 0x1A, 0x00, (ops GPRC:$RD, GPRC:$RS, GPRC:$DISP), "jmp $RD,($RS),$DISP", s_jsr>; //Jump +let isBranch = 1, isTerminator = 1, noResults = 1, isBarrier = 1, +Ra = 31, disp = 0 in +def JMP : MbrpForm< 0x1A, 0x00, (ops GPRC:$RS), "jmp $$31,($RS),0", + [(brind GPRC:$RS)], s_jsr>; //Jump + let isCall = 1, noResults = 1, Ra = 26, Defs = [R0, R1, R2, R3, R4, R5, R6, R7, R8, R16, R17, R18, R19, R20, R21, R22, R23, R24, R25, R26, R27, R28, R29, @@ -545,6 +549,12 @@ def : Pat<(f64 (load (Alpha_gprello tconstpool:$DISP, GPRC:$RB))), (LDTr tconstpool:$DISP, GPRC:$RB)>; +//jumptable rels +def : Pat<(i64 (Alpha_gprelhi tjumptable:$DISP, GPRC:$RB)), + (LDAHr tjumptable:$DISP, GPRC:$RB)>; +def : Pat<(i64 (Alpha_gprello tjumptable:$DISP, GPRC:$RB)), + (LDAr tjumptable:$DISP, GPRC:$RB)>; + //misc ext patterns def : Pat<(i64 (extload (add GPRC:$RB, immSExt16:$DISP), i8)), ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.48 -> 1.49 --- Log message: Adding dllimport, dllexport and external weak linkage types. DLL* linkages got full (I hope) codegeneration support in C & both x86 assembler backends. External weak linkage added for future use, we don't provide any codegeneration, etc. support for it. --- Diffs of the changes: (+8 -0) AlphaAsmPrinter.cpp |8 1 files changed, 8 insertions(+) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.48 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.49 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.48 Thu Sep 7 17:06:40 2006 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Thu Sep 14 13:23:26 2006 @@ -258,6 +258,14 @@ case GlobalValue::GhostLinkage: std::cerr << "GhostLinkage cannot appear in AlphaAsmPrinter!\n"; abort(); +case GlobalValue::DLLImportLinkage: + std::cerr << "DLLImport linkage is not supported by this target!\n"; + abort(); +case GlobalValue::DLLExportLinkage: + std::cerr << "DLLExport linkage is not supported by this target!\n"; + abort(); +default: + assert(0 && "Unknown linkage type!"); } EmitAlignment(Align); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp AlphaTargetMachine.cpp AlphaTargetMachine.h
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.47 -> 1.48 AlphaTargetMachine.cpp updated: 1.29 -> 1.30 AlphaTargetMachine.h updated: 1.15 -> 1.16 --- Log message: Make target asm info a property of the target machine. --- Diffs of the changes: (+13 -11) AlphaAsmPrinter.cpp| 12 ++-- AlphaTargetMachine.cpp |3 ++- AlphaTargetMachine.h |9 + 3 files changed, 13 insertions(+), 11 deletions(-) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.47 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.48 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.47 Wed Sep 6 13:34:40 2006 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Thu Sep 7 17:06:40 2006 @@ -29,20 +29,13 @@ namespace { Statistic<> EmittedInsts("asm-printer", "Number of machine instrs printed"); - struct VISIBILITY_HIDDEN AlphaTargetAsmInfo : public TargetAsmInfo { -AlphaTargetAsmInfo() { - AlignmentIsInBytes = false; - PrivateGlobalPrefix = "$"; -} - }; - struct VISIBILITY_HIDDEN AlphaAsmPrinter : public AsmPrinter { /// Unique incrementer for label values for referencing Global values. /// unsigned LabelNumber; -AlphaAsmPrinter(std::ostream &o, TargetMachine &tm, TargetAsmInfo *T) +AlphaAsmPrinter(std::ostream &o, TargetMachine &tm, const TargetAsmInfo *T) : AsmPrinter(o, tm, T), LabelNumber(0) { } @@ -82,8 +75,7 @@ /// FunctionPass *llvm::createAlphaCodePrinterPass (std::ostream &o, TargetMachine &tm) { - AlphaTargetAsmInfo *TAI = new AlphaTargetAsmInfo(); - return new AlphaAsmPrinter(o, tm, TAI); + return new AlphaAsmPrinter(o, tm, tm.getTargetAsmInfo()); } #include "AlphaGenAsmWriter.inc" Index: llvm/lib/Target/Alpha/AlphaTargetMachine.cpp diff -u llvm/lib/Target/Alpha/AlphaTargetMachine.cpp:1.29 llvm/lib/Target/Alpha/AlphaTargetMachine.cpp:1.30 --- llvm/lib/Target/Alpha/AlphaTargetMachine.cpp:1.29 Sun Sep 3 23:14:57 2006 +++ llvm/lib/Target/Alpha/AlphaTargetMachine.cppThu Sep 7 17:06:40 2006 @@ -53,7 +53,8 @@ : DataLayout("e"), FrameInfo(TargetFrameInfo::StackGrowsDown, 16, 0), JITInfo(*this), -Subtarget(M, FS) { +Subtarget(M, FS), +AsmInfo(NULL) { } Index: llvm/lib/Target/Alpha/AlphaTargetMachine.h diff -u llvm/lib/Target/Alpha/AlphaTargetMachine.h:1.15 llvm/lib/Target/Alpha/AlphaTargetMachine.h:1.16 --- llvm/lib/Target/Alpha/AlphaTargetMachine.h:1.15 Sun Sep 3 23:14:57 2006 +++ llvm/lib/Target/Alpha/AlphaTargetMachine.h Thu Sep 7 17:06:40 2006 @@ -20,6 +20,7 @@ #include "AlphaInstrInfo.h" #include "AlphaJITInfo.h" #include "AlphaSubtarget.h" +#include "AlphaTargetAsmInfo.h" namespace llvm { @@ -31,9 +32,13 @@ TargetFrameInfo FrameInfo; AlphaJITInfo JITInfo; AlphaSubtarget Subtarget; + AlphaTargetAsmInfo *AsmInfo; public: AlphaTargetMachine(const Module &M, const std::string &FS); + ~AlphaTargetMachine() { +if (AsmInfo) delete AsmInfo; + } virtual const AlphaInstrInfo *getInstrInfo() const { return &InstrInfo; } virtual const TargetFrameInfo *getFrameInfo() const { return &FrameInfo; } @@ -46,6 +51,10 @@ return &JITInfo; } + virtual const TargetAsmInfo *createTargetAsmInfo() const { +return static_cast(new AlphaTargetAsmInfo(*this)); + } + static unsigned getJITMatchQuality(); static unsigned getModuleMatchQuality(const Module &M); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.46 -> 1.47 --- Log message: Separate target specific asm properties from the asm printers. --- Diffs of the changes: (+14 -7) AlphaAsmPrinter.cpp | 21 ++--- 1 files changed, 14 insertions(+), 7 deletions(-) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.46 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.47 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.46 Mon Jul 3 12:57:34 2006 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Wed Sep 6 13:34:40 2006 @@ -19,6 +19,7 @@ #include "llvm/Type.h" #include "llvm/Assembly/Writer.h" #include "llvm/CodeGen/AsmPrinter.h" +#include "llvm/Target/TargetAsmInfo.h" #include "llvm/Target/TargetMachine.h" #include "llvm/Support/Mangler.h" #include "llvm/ADT/Statistic.h" @@ -27,17 +28,22 @@ namespace { Statistic<> EmittedInsts("asm-printer", "Number of machine instrs printed"); + + struct VISIBILITY_HIDDEN AlphaTargetAsmInfo : public TargetAsmInfo { +AlphaTargetAsmInfo() { + AlignmentIsInBytes = false; + PrivateGlobalPrefix = "$"; +} + }; - struct AlphaAsmPrinter : public AsmPrinter { + struct VISIBILITY_HIDDEN AlphaAsmPrinter : public AsmPrinter { /// Unique incrementer for label values for referencing Global values. /// unsigned LabelNumber; - AlphaAsmPrinter(std::ostream &o, TargetMachine &tm) - : AsmPrinter(o, tm), LabelNumber(0) { - AlignmentIsInBytes = false; - PrivateGlobalPrefix = "$"; +AlphaAsmPrinter(std::ostream &o, TargetMachine &tm, TargetAsmInfo *T) + : AsmPrinter(o, tm, T), LabelNumber(0) { } /// We name each basic block in a Function with a unique number, so @@ -76,7 +82,8 @@ /// FunctionPass *llvm::createAlphaCodePrinterPass (std::ostream &o, TargetMachine &tm) { - return new AlphaAsmPrinter(o, tm); + AlphaTargetAsmInfo *TAI = new AlphaTargetAsmInfo(); + return new AlphaAsmPrinter(o, tm, TAI); } #include "AlphaGenAsmWriter.inc" @@ -115,7 +122,7 @@ return; case MachineOperand::MO_ConstantPoolIndex: -O << PrivateGlobalPrefix << "CPI" << getFunctionNumber() << "_" +O << TAI->getPrivateGlobalPrefix() << "CPI" << getFunctionNumber() << "_" << MO.getConstantPoolIndex(); return; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.45 -> 1.46 --- Log message: 0 offsets for memory operands --- Diffs of the changes: (+2 -0) AlphaAsmPrinter.cpp |2 ++ 1 files changed, 2 insertions(+) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.45 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.46 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.45 Wed Jun 21 10:42:36 2006 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Mon Jul 3 12:57:34 2006 @@ -288,6 +288,8 @@ const char *ExtraCode) { if (ExtraCode && ExtraCode[0]) return true; // Unknown modifier. + O << "0("; printOperand(MI, OpNo); + O << ")"; return false; } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp AlphaISelDAGToDAG.cpp AlphaISelLowering.cpp
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.44 -> 1.45 AlphaISelDAGToDAG.cpp updated: 1.45 -> 1.46 AlphaISelLowering.cpp updated: 1.53 -> 1.54 --- Log message: Add memory operand and int regs --- Diffs of the changes: (+46 -0) AlphaAsmPrinter.cpp | 14 ++ AlphaISelDAGToDAG.cpp | 18 ++ AlphaISelLowering.cpp | 14 ++ 3 files changed, 46 insertions(+) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.44 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.45 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.44 Wed Jun 21 08:37:27 2006 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Wed Jun 21 10:42:36 2006 @@ -62,6 +62,10 @@ bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo, unsigned AsmVariant, const char *ExtraCode); +bool PrintAsmMemoryOperand(const MachineInstr *MI, + unsigned OpNo, + unsigned AsmVariant, + const char *ExtraCode); }; } // end of anonymous namespace @@ -277,3 +281,13 @@ printOperand(MI, OpNo); return false; } + +bool AlphaAsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI, + unsigned OpNo, + unsigned AsmVariant, + const char *ExtraCode) { + if (ExtraCode && ExtraCode[0]) +return true; // Unknown modifier. + printOperand(MI, OpNo); + return false; +} Index: llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp diff -u llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp:1.45 llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp:1.46 --- llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp:1.45Tue Jun 13 15:34:47 2006 +++ llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp Wed Jun 21 10:42:36 2006 @@ -119,6 +119,24 @@ return "Alpha DAG->DAG Pattern Instruction Selection"; } +/// SelectInlineAsmMemoryOperand - Implement addressing mode selection for +/// inline asm expressions. +virtual bool SelectInlineAsmMemoryOperand(const SDOperand &Op, + char ConstraintCode, + std::vector &OutOps, + SelectionDAG &DAG) { + SDOperand Op0; + switch (ConstraintCode) { + default: return true; + case 'm': // memory + Select(Op0, Op); +break; + } + + OutOps.push_back(Op0); + return false; +} + // Include the pieces autogenerated from the target description. #include "AlphaGenDAGISel.inc" Index: llvm/lib/Target/Alpha/AlphaISelLowering.cpp diff -u llvm/lib/Target/Alpha/AlphaISelLowering.cpp:1.53 llvm/lib/Target/Alpha/AlphaISelLowering.cpp:1.54 --- llvm/lib/Target/Alpha/AlphaISelLowering.cpp:1.53Wed Jun 21 08:37:27 2006 +++ llvm/lib/Target/Alpha/AlphaISelLowering.cpp Wed Jun 21 10:42:36 2006 @@ -591,6 +591,7 @@ switch (ConstraintLetter) { default: break; case 'f': + case 'r': return C_RegisterClass; } return TargetLowering::getConstraintType(ConstraintLetter); @@ -614,6 +615,19 @@ Alpha::F24, Alpha::F25, Alpha::F26, Alpha::F27, Alpha::F28, Alpha::F29, Alpha::F30, Alpha::F31, 0); +case 'r': + return make_vector(Alpha::R0 , Alpha::R1 , Alpha::R2 , + Alpha::R3 , Alpha::R4 , Alpha::R5 , + Alpha::R6 , Alpha::R7 , Alpha::R8 , + Alpha::R9 , Alpha::R10, Alpha::R11, + Alpha::R12, Alpha::R13, Alpha::R14, + Alpha::R15, Alpha::R16, Alpha::R17, + Alpha::R18, Alpha::R19, Alpha::R20, + Alpha::R21, Alpha::R22, Alpha::R23, + Alpha::R24, Alpha::R25, Alpha::R26, + Alpha::R27, Alpha::R28, Alpha::R29, + Alpha::R30, Alpha::R31, 0); + } } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp AlphaISelLowering.cpp AlphaISelLowering.h
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.43 -> 1.44 AlphaISelLowering.cpp updated: 1.52 -> 1.53 AlphaISelLowering.h updated: 1.18 -> 1.19 --- Log message: inline asm, at least for floats --- Diffs of the changes: (+58 -0) AlphaAsmPrinter.cpp | 12 AlphaISelLowering.cpp | 39 +++ AlphaISelLowering.h |7 +++ 3 files changed, 58 insertions(+) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.43 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.44 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.43 Wed May 17 14:24:31 2006 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Wed Jun 21 08:37:27 2006 @@ -59,6 +59,9 @@ bool runOnMachineFunction(MachineFunction &F); bool doInitialization(Module &M); bool doFinalization(Module &M); + +bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo, + unsigned AsmVariant, const char *ExtraCode); }; } // end of anonymous namespace @@ -265,3 +268,12 @@ AsmPrinter::doFinalization(M); return false; } + +/// PrintAsmOperand - Print out an operand for an inline asm expression. +/// +bool AlphaAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo, +unsigned AsmVariant, +const char *ExtraCode) { + printOperand(MI, OpNo); + return false; +} Index: llvm/lib/Target/Alpha/AlphaISelLowering.cpp diff -u llvm/lib/Target/Alpha/AlphaISelLowering.cpp:1.52 llvm/lib/Target/Alpha/AlphaISelLowering.cpp:1.53 --- llvm/lib/Target/Alpha/AlphaISelLowering.cpp:1.52Tue Jun 20 20:00:43 2006 +++ llvm/lib/Target/Alpha/AlphaISelLowering.cpp Wed Jun 21 08:37:27 2006 @@ -580,3 +580,42 @@ // The code in LowerOperation already handles i32 vaarg return LowerOperation(Op, DAG); } + + +//Inline Asm + +/// getConstraintType - Given a constraint letter, return the type of +/// constraint it is for this target. +AlphaTargetLowering::ConstraintType +AlphaTargetLowering::getConstraintType(char ConstraintLetter) const { + switch (ConstraintLetter) { + default: break; + case 'f': +return C_RegisterClass; + } + return TargetLowering::getConstraintType(ConstraintLetter); +} + +std::vector AlphaTargetLowering:: +getRegClassForInlineAsmConstraint(const std::string &Constraint, + MVT::ValueType VT) const { + if (Constraint.size() == 1) { +switch (Constraint[0]) { +default: break; // Unknown constriant letter +case 'f': + return make_vector(Alpha::F0 , Alpha::F1 , Alpha::F2 , + Alpha::F3 , Alpha::F4 , Alpha::F5 , + Alpha::F6 , Alpha::F7 , Alpha::F8 , + Alpha::F9 , Alpha::F10, Alpha::F11, + Alpha::F12, Alpha::F13, Alpha::F14, + Alpha::F15, Alpha::F16, Alpha::F17, + Alpha::F18, Alpha::F19, Alpha::F20, + Alpha::F21, Alpha::F22, Alpha::F23, + Alpha::F24, Alpha::F25, Alpha::F26, + Alpha::F27, Alpha::F28, Alpha::F29, + Alpha::F30, Alpha::F31, 0); +} + } + + return std::vector(); +} Index: llvm/lib/Target/Alpha/AlphaISelLowering.h diff -u llvm/lib/Target/Alpha/AlphaISelLowering.h:1.18 llvm/lib/Target/Alpha/AlphaISelLowering.h:1.19 --- llvm/lib/Target/Alpha/AlphaISelLowering.h:1.18 Tue Jun 13 13:27:39 2006 +++ llvm/lib/Target/Alpha/AlphaISelLowering.h Wed Jun 21 08:37:27 2006 @@ -15,6 +15,7 @@ #ifndef LLVM_TARGET_ALPHA_ALPHAISELLOWERING_H #define LLVM_TARGET_ALPHA_ALPHAISELLOWERING_H +#include "llvm/ADT/VectorExtras.h" #include "llvm/Target/TargetLowering.h" #include "llvm/CodeGen/SelectionDAG.h" #include "Alpha.h" @@ -77,6 +78,12 @@ bool isTailCall, SDOperand Callee, ArgListTy &Args, SelectionDAG &DAG); +ConstraintType getConstraintType(char ConstraintLetter) const; + +std::vector + getRegClassForInlineAsmConstraint(const std::string &Constraint, +MVT::ValueType VT) const; + void restoreGP(MachineBasicBlock* BB); void restoreRA(MachineBasicBlock* BB); unsigned getVRegGP() { return GP; } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.42 -> 1.43 --- Log message: Added sanity check for obviously bogus immediates --- Diffs of the changes: (+1 -0) AlphaAsmPrinter.cpp |1 + 1 files changed, 1 insertion(+) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.42 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.43 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.42 Mon May 8 23:59:56 2006 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Wed May 17 14:24:31 2006 @@ -82,6 +82,7 @@ O << TM.getRegisterInfo()->get(MO.getReg()).Name; } else if (MO.isImmediate()) { O << MO.getImmedValue(); +assert(MO.getImmedValue() < (1 << 30)); } else { printOp(MO); } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.41 -> 1.42 --- Log message: Split SwitchSection into SwitchTo{Text|Data}Section methods. --- Diffs of the changes: (+5 -5) AlphaAsmPrinter.cpp | 10 +- 1 files changed, 5 insertions(+), 5 deletions(-) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.41 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.42 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.41 Thu May 4 13:05:43 2006 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Mon May 8 23:59:56 2006 @@ -151,7 +151,7 @@ // Print out labels for the function. const Function *F = MF.getFunction(); - SwitchSection(".text", F); + SwitchToTextSection(".text", F); EmitAlignment(4, F); switch (F->getLinkage()) { default: assert(0 && "Unknown linkage type!"); @@ -221,7 +221,7 @@ if (C->isNullValue() && (I->hasLinkOnceLinkage() || I->hasInternalLinkage() || I->hasWeakLinkage() /* FIXME: Verify correct */)) { -SwitchSection("\t.section .data", I); +SwitchToDataSection("\t.section .data", I); if (I->hasInternalLinkage()) O << "\t.local " << name << "\n"; @@ -235,7 +235,7 @@ // Nonnull linkonce -> weak O << "\t.weak " << name << "\n"; O << "\t.section\t.llvm.linkonce.d." << name << ",\"aw\",@progbits\n"; - SwitchSection("", I); + SwitchToDataSection("", I); break; case GlobalValue::AppendingLinkage: // FIXME: appending linkage variables should go into a section of @@ -245,8 +245,8 @@ O << "\t.globl " << name << "\n"; // FALL THROUGH case GlobalValue::InternalLinkage: - SwitchSection(C->isNullValue() ? "\t.section .bss" : -"\t.section .data", I); + SwitchToDataSection(C->isNullValue() ? "\t.section .bss" : + "\t.section .data", I); break; case GlobalValue::GhostLinkage: std::cerr << "GhostLinkage cannot appear in AlphaAsmPrinter!\n"; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.40 -> 1.41 --- Log message: Rename MO_VirtualRegister -> MO_Register. Clean up immediate handling. --- Diffs of the changes: (+2 -2) AlphaAsmPrinter.cpp |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.40 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.41 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.40 Thu May 4 12:21:19 2006 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Thu May 4 13:05:43 2006 @@ -77,7 +77,7 @@ void AlphaAsmPrinter::printOperand(const MachineInstr *MI, int opNum) { const MachineOperand &MO = MI->getOperand(opNum); - if (MO.getType() == MachineOperand::MO_VirtualRegister) { + if (MO.getType() == MachineOperand::MO_Register) { assert(MRegisterInfo::isPhysicalRegister(MO.getReg())&&"Not physreg??"); O << TM.getRegisterInfo()->get(MO.getReg()).Name; } else if (MO.isImmediate()) { @@ -93,7 +93,7 @@ int new_symbol; switch (MO.getType()) { - case MachineOperand::MO_VirtualRegister: + case MachineOperand::MO_Register: O << RI.get(MO.getReg()).Name; return; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp AlphaRegisterInfo.cpp
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.39 -> 1.40 AlphaRegisterInfo.cpp updated: 1.41 -> 1.42 --- Log message: There shalt be only one "immediate" operand type! --- Diffs of the changes: (+3 -4) AlphaAsmPrinter.cpp |3 +-- AlphaRegisterInfo.cpp |4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.39 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.40 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.39 Wed May 3 20:15:02 2006 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Thu May 4 12:21:19 2006 @@ -97,8 +97,7 @@ O << RI.get(MO.getReg()).Name; return; - case MachineOperand::MO_SignExtendedImmed: - case MachineOperand::MO_UnextendedImmed: + case MachineOperand::MO_Immediate: std::cerr << "printOp() does not handle immediate values\n"; abort(); return; Index: llvm/lib/Target/Alpha/AlphaRegisterInfo.cpp diff -u llvm/lib/Target/Alpha/AlphaRegisterInfo.cpp:1.41 llvm/lib/Target/Alpha/AlphaRegisterInfo.cpp:1.42 --- llvm/lib/Target/Alpha/AlphaRegisterInfo.cpp:1.41Wed May 3 20:15:02 2006 +++ llvm/lib/Target/Alpha/AlphaRegisterInfo.cpp Thu May 4 12:21:19 2006 @@ -234,14 +234,14 @@ //inst off the SP/FP //fix up the old: MI.SetMachineOperandReg(i + 1, Alpha::R28); -MI.SetMachineOperandConst(i, MachineOperand::MO_SignExtendedImmed, +MI.SetMachineOperandConst(i, MachineOperand::MO_Immediate, getLower16(Offset)); //insert the new MachineInstr* nMI=BuildMI(Alpha::LDAH, 2, Alpha::R28) .addImm(getUpper16(Offset)).addReg(FP ? Alpha::R15 : Alpha::R30); MBB.insert(II, nMI); } else { -MI.SetMachineOperandConst(i, MachineOperand::MO_SignExtendedImmed, Offset); +MI.SetMachineOperandConst(i, MachineOperand::MO_Immediate, Offset); } } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp AlphaRegisterInfo.cpp
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.38 -> 1.39 AlphaRegisterInfo.cpp updated: 1.40 -> 1.41 --- Log message: Remove a bunch more SparcV9 specific stuff --- Diffs of the changes: (+3 -8) AlphaAsmPrinter.cpp |8 +--- AlphaRegisterInfo.cpp |3 ++- 2 files changed, 3 insertions(+), 8 deletions(-) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.38 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.39 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.38 Wed May 3 19:49:59 2006 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Wed May 3 20:15:02 2006 @@ -77,7 +77,7 @@ void AlphaAsmPrinter::printOperand(const MachineInstr *MI, int opNum) { const MachineOperand &MO = MI->getOperand(opNum); - if (MO.getType() == MachineOperand::MO_MachineRegister) { + if (MO.getType() == MachineOperand::MO_VirtualRegister) { assert(MRegisterInfo::isPhysicalRegister(MO.getReg())&&"Not physreg??"); O << TM.getRegisterInfo()->get(MO.getReg()).Name; } else if (MO.isImmediate()) { @@ -94,12 +94,6 @@ switch (MO.getType()) { case MachineOperand::MO_VirtualRegister: -if (Value *V = MO.getVRegValueOrNull()) { - O << "<" << V->getName() << ">"; - return; -} -// FALLTHROUGH - case MachineOperand::MO_MachineRegister: O << RI.get(MO.getReg()).Name; return; Index: llvm/lib/Target/Alpha/AlphaRegisterInfo.cpp diff -u llvm/lib/Target/Alpha/AlphaRegisterInfo.cpp:1.40 llvm/lib/Target/Alpha/AlphaRegisterInfo.cpp:1.41 --- llvm/lib/Target/Alpha/AlphaRegisterInfo.cpp:1.40Fri Apr 7 11:34:45 2006 +++ llvm/lib/Target/Alpha/AlphaRegisterInfo.cpp Wed May 3 20:15:02 2006 @@ -263,7 +263,8 @@ .addReg(Alpha::R29).addImm(curgpdist); //evil const_cast until MO stuff setup to handle const - BuildMI(MBB, MBBI, Alpha::ALTENT, 1).addGlobalAddress(const_cast(MF.getFunction()), true); + BuildMI(MBB, MBBI, Alpha::ALTENT, 1) +.addGlobalAddress(const_cast(MF.getFunction())); // Get the number of bytes to allocate from the FrameInfo long NumBytes = MFI->getStackSize(); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.37 -> 1.38 --- Log message: Remove some more V9-specific stuff. --- Diffs of the changes: (+1 -6) AlphaAsmPrinter.cpp |7 +-- 1 files changed, 1 insertion(+), 6 deletions(-) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.37 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.38 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.37 Wed May 3 19:44:25 2006 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Wed May 3 19:49:59 2006 @@ -123,12 +123,7 @@ return; case MachineOperand::MO_GlobalAddress: -//Abuse PCrel to specify pcrel calls -//calls are the only thing that use this flag -// if (MO.isPCRelative()) -// O << PrivateGlobalPrefix << Mang->getValueName(MO.getGlobal()) << "..ng"; -// else - O << Mang->getValueName(MO.getGlobal()); +O << Mang->getValueName(MO.getGlobal()); return; default: ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.36 -> 1.37 --- Log message: Remove some more unused stuff from MachineInstr that was leftover from V9. --- Diffs of the changes: (+0 -6) AlphaAsmPrinter.cpp |6 -- 1 files changed, 6 deletions(-) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.36 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.37 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.36 Tue May 2 20:29:57 2006 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Wed May 3 19:44:25 2006 @@ -100,7 +100,6 @@ } // FALLTHROUGH case MachineOperand::MO_MachineRegister: - case MachineOperand::MO_CCRegister: O << RI.get(MO.getReg()).Name; return; @@ -110,11 +109,6 @@ abort(); return; - case MachineOperand::MO_PCRelativeDisp: -std::cerr << "Shouldn't use addPCDisp() when building Alpha MachineInstrs"; -abort(); -return; - case MachineOperand::MO_MachineBasicBlock: printBasicBlockLabel(MO.getMachineBasicBlock()); return; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp AlphaTargetMachine.cpp AlphaTargetMachine.h
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.35 -> 1.36 AlphaTargetMachine.cpp updated: 1.23 -> 1.24 AlphaTargetMachine.h updated: 1.12 -> 1.13 --- Log message: Refactor TargetMachine, pushing handling of TargetData into the target-specific subclasses. This has one caller-visible change: getTargetData() now returns a pointer instead of a reference. This fixes PR 759: http://llvm.cs.uiuc.edu/PR759 . --- Diffs of the changes: (+9 -6) AlphaAsmPrinter.cpp|8 AlphaTargetMachine.cpp |3 ++- AlphaTargetMachine.h |4 +++- 3 files changed, 9 insertions(+), 6 deletions(-) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.35 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.36 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.35 Tue May 2 00:37:32 2006 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Tue May 2 20:29:57 2006 @@ -221,7 +221,7 @@ } bool AlphaAsmPrinter::doFinalization(Module &M) { - const TargetData &TD = TM.getTargetData(); + const TargetData *TD = TM.getTargetData(); for (Module::const_global_iterator I = M.global_begin(), E = M.global_end(); I != E; ++I) if (I->hasInitializer()) { // External global require no code @@ -232,8 +232,8 @@ O << "\n\n"; std::string name = Mang->getValueName(I); Constant *C = I->getInitializer(); - unsigned Size = TD.getTypeSize(C->getType()); - // unsigned Align = TD.getTypeAlignmentShift(C->getType()); + unsigned Size = TD->getTypeSize(C->getType()); + // unsigned Align = TD->getTypeAlignmentShift(C->getType()); unsigned Align = getPreferredAlignmentLog(I); if (C->isNullValue() && @@ -243,7 +243,7 @@ if (I->hasInternalLinkage()) O << "\t.local " << name << "\n"; -O << "\t.comm " << name << "," << TD.getTypeSize(C->getType()) +O << "\t.comm " << name << "," << TD->getTypeSize(C->getType()) << "," << (1 << Align) << "\n"; } else { Index: llvm/lib/Target/Alpha/AlphaTargetMachine.cpp diff -u llvm/lib/Target/Alpha/AlphaTargetMachine.cpp:1.23 llvm/lib/Target/Alpha/AlphaTargetMachine.cpp:1.24 --- llvm/lib/Target/Alpha/AlphaTargetMachine.cpp:1.23 Sat Apr 8 14:46:55 2006 +++ llvm/lib/Target/Alpha/AlphaTargetMachine.cppTue May 2 20:29:57 2006 @@ -54,7 +54,8 @@ } AlphaTargetMachine::AlphaTargetMachine(const Module &M, const std::string &FS) - : TargetMachine("alpha", true), + : TargetMachine("alpha"), +DataLayout("alpha", true), FrameInfo(TargetFrameInfo::StackGrowsDown, 16, 0), JITInfo(*this), Subtarget(M, FS) Index: llvm/lib/Target/Alpha/AlphaTargetMachine.h diff -u llvm/lib/Target/Alpha/AlphaTargetMachine.h:1.12 llvm/lib/Target/Alpha/AlphaTargetMachine.h:1.13 --- llvm/lib/Target/Alpha/AlphaTargetMachine.h:1.12 Wed Mar 22 23:43:15 2006 +++ llvm/lib/Target/Alpha/AlphaTargetMachine.h Tue May 2 20:29:57 2006 @@ -26,11 +26,12 @@ class GlobalValue; class AlphaTargetMachine : public TargetMachine { + const TargetData DataLayout; // Calculates type size & alignment AlphaInstrInfo InstrInfo; TargetFrameInfo FrameInfo; AlphaJITInfo JITInfo; AlphaSubtarget Subtarget; - + public: AlphaTargetMachine(const Module &M, const std::string &FS); @@ -40,6 +41,7 @@ virtual const MRegisterInfo *getRegisterInfo() const { return &InstrInfo.getRegisterInfo(); } + virtual const TargetData *getTargetData() const { return &DataLayout; } virtual TargetJITInfo* getJITInfo() { return &JITInfo; } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.34 -> 1.35 --- Log message: Extend printBasicBlockLabel a bit so that it can be used to print all basic block labels, consolidating the code to do so in one place for each target. --- Diffs of the changes: (+2 -3) AlphaAsmPrinter.cpp |5 ++--- 1 files changed, 2 insertions(+), 3 deletions(-) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.34 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.35 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.34 Sat Apr 22 13:53:45 2006 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Tue May 2 00:37:32 2006 @@ -191,9 +191,8 @@ // Print out code for the function. for (MachineFunction::const_iterator I = MF.begin(), E = MF.end(); I != E; ++I) { -// Print a label for the basic block. -O << PrivateGlobalPrefix << "LBB" << CurrentFnName << "_" << I->getNumber() - << ":\t" << CommentString << " " << I->getBasicBlock()->getName() << "\n"; +printBasicBlockLabel(I, true); +O << '\n'; for (MachineBasicBlock::const_iterator II = I->begin(), E = I->end(); II != E; ++II) { // Print the assembly for the instruction. ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp AlphaISelLowering.cpp
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.33 -> 1.34 AlphaISelLowering.cpp updated: 1.46 -> 1.47 --- Log message: JumpTable support! What this represents is working asm and jit support for x86 and ppc for 100% dense switch statements when relocations are non-PIC. This support will be extended and enhanced in the coming days to support PIC, and less dense forms of jump tables. --- Diffs of the changes: (+3 -7) AlphaAsmPrinter.cpp |9 ++--- AlphaISelLowering.cpp |1 + 2 files changed, 3 insertions(+), 7 deletions(-) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.33 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.34 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.33 Thu Mar 9 00:14:35 2006 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Sat Apr 22 13:53:45 2006 @@ -115,14 +115,9 @@ abort(); return; - case MachineOperand::MO_MachineBasicBlock: { -MachineBasicBlock *MBBOp = MO.getMachineBasicBlock(); -O << PrivateGlobalPrefix << "LBB" - << Mang->getValueName(MBBOp->getParent()->getFunction()) - << "_" << MBBOp->getNumber() << "\t" << CommentString << " " - << MBBOp->getBasicBlock()->getName(); + case MachineOperand::MO_MachineBasicBlock: +printBasicBlockLabel(MO.getMachineBasicBlock()); return; - } case MachineOperand::MO_ConstantPoolIndex: O << PrivateGlobalPrefix << "CPI" << getFunctionNumber() << "_" Index: llvm/lib/Target/Alpha/AlphaISelLowering.cpp diff -u llvm/lib/Target/Alpha/AlphaISelLowering.cpp:1.46 llvm/lib/Target/Alpha/AlphaISelLowering.cpp:1.47 --- llvm/lib/Target/Alpha/AlphaISelLowering.cpp:1.46Thu Apr 6 18:18:45 2006 +++ llvm/lib/Target/Alpha/AlphaISelLowering.cpp Sat Apr 22 13:53:45 2006 @@ -193,6 +193,7 @@ addRegisterClass(MVT::f64, Alpha::F8RCRegisterClass); addRegisterClass(MVT::f32, Alpha::F4RCRegisterClass); + setOperationAction(ISD::BRIND,MVT::i64, Expand); setOperationAction(ISD::BR_CC,MVT::Other, Expand); setOperationAction(ISD::SELECT_CC,MVT::Other, Expand); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.32 -> 1.33 --- Log message: Add support for 'special' llvm globals like debug info and static ctors/dtors. --- Diffs of the changes: (+4 -0) AlphaAsmPrinter.cpp |4 1 files changed, 4 insertions(+) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.32 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.33 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.32 Mon Feb 27 04:29:04 2006 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Thu Mar 9 00:14:35 2006 @@ -231,6 +231,10 @@ for (Module::const_global_iterator I = M.global_begin(), E = M.global_end(); I != E; ++I) if (I->hasInitializer()) { // External global require no code + // Check to see if this is a special global used by LLVM, if so, emit it. + if (EmitSpecialLLVMGlobal(I)) +continue; + O << "\n\n"; std::string name = Mang->getValueName(I); Constant *C = I->getInitializer(); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.31 -> 1.32 --- Log message: Removed dependency on how operands are printed (want multi-line.) --- Diffs of the changes: (+3 -9) AlphaAsmPrinter.cpp | 12 +++- 1 files changed, 3 insertions(+), 9 deletions(-) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.31 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.32 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.31 Mon Feb 6 11:15:17 2006 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Mon Feb 27 04:29:04 2006 @@ -246,10 +246,8 @@ O << "\t.local " << name << "\n"; O << "\t.comm " << name << "," << TD.getTypeSize(C->getType()) - << "," << (1 << Align); -O << "\t\t# "; -WriteAsOperand(O, I, true, true, &M); -O << "\n"; + << "," << (1 << Align) + << "\n"; } else { switch (I->getLinkage()) { case GlobalValue::LinkOnceLinkage: @@ -278,11 +276,7 @@ EmitAlignment(Align); O << "\t.type " << name << ",@object\n"; O << "\t.size " << name << "," << Size << "\n"; -O << name << ":\t\t\t\t# "; -WriteAsOperand(O, I, true, true, &M); -O << " = "; -WriteAsOperand(O, C, false, false, &M); -O << "\n"; +O << name << ":\n"; EmitGlobalConstant(C); } } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.30 -> 1.31 --- Log message: see what this allignment thing will do --- Diffs of the changes: (+2 -1) AlphaAsmPrinter.cpp |3 ++- 1 files changed, 2 insertions(+), 1 deletion(-) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.30 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.31 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.30 Sat Feb 4 13:13:09 2006 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Mon Feb 6 11:15:17 2006 @@ -235,7 +235,8 @@ std::string name = Mang->getValueName(I); Constant *C = I->getInitializer(); unsigned Size = TD.getTypeSize(C->getType()); - unsigned Align = TD.getTypeAlignmentShift(C->getType()); + // unsigned Align = TD.getTypeAlignmentShift(C->getType()); + unsigned Align = getPreferredAlignmentLog(I); if (C->isNullValue() && (I->hasLinkOnceLinkage() || I->hasInternalLinkage() || ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.29 -> 1.30 --- Log message: linkage fix for weak functions --- Diffs of the changes: (+16 -3) AlphaAsmPrinter.cpp | 19 --- 1 files changed, 16 insertions(+), 3 deletions(-) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.29 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.30 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.29 Sun Jan 22 17:37:17 2006 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Sat Feb 4 13:13:09 2006 @@ -173,9 +173,22 @@ EmitConstantPool(MF.getConstantPool()); // Print out labels for the function. - SwitchSection("\t.section .text", MF.getFunction()); - EmitAlignment(4); - O << "\t.globl " << CurrentFnName << "\n"; + const Function *F = MF.getFunction(); + SwitchSection(".text", F); + EmitAlignment(4, F); + switch (F->getLinkage()) { + default: assert(0 && "Unknown linkage type!"); + case Function::InternalLinkage: // Symbols default to internal. +break; + case Function::ExternalLinkage: + O << "\t.globl " << CurrentFnName << "\n"; + break; + case Function::WeakLinkage: + case Function::LinkOnceLinkage: +O << "\t.weak " << CurrentFnName << "\n"; +break; + } + O << "\t.ent " << CurrentFnName << "\n"; O << CurrentFnName << ":\n"; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp AlphaCodeEmitter.cpp AlphaISelDAGToDAG.cpp AlphaISelPattern.cpp
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.28 -> 1.29 AlphaCodeEmitter.cpp updated: 1.8 -> 1.9 AlphaISelDAGToDAG.cpp updated: 1.28 -> 1.29 AlphaISelPattern.cpp updated: 1.198 -> 1.199 --- Log message: Add explicit #includes of --- Diffs of the changes: (+5 -3) AlphaAsmPrinter.cpp |2 +- AlphaCodeEmitter.cpp |1 + AlphaISelDAGToDAG.cpp |1 + AlphaISelPattern.cpp |4 ++-- 4 files changed, 5 insertions(+), 3 deletions(-) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.28 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.29 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.28 Sun Dec 25 11:36:48 2005 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Sun Jan 22 17:37:17 2006 @@ -22,7 +22,7 @@ #include "llvm/Target/TargetMachine.h" #include "llvm/Support/Mangler.h" #include "llvm/ADT/Statistic.h" - +#include using namespace llvm; namespace { Index: llvm/lib/Target/Alpha/AlphaCodeEmitter.cpp diff -u llvm/lib/Target/Alpha/AlphaCodeEmitter.cpp:1.8 llvm/lib/Target/Alpha/AlphaCodeEmitter.cpp:1.9 --- llvm/lib/Target/Alpha/AlphaCodeEmitter.cpp:1.8 Mon Nov 21 22:20:06 2005 +++ llvm/lib/Target/Alpha/AlphaCodeEmitter.cpp Sun Jan 22 17:37:17 2006 @@ -23,6 +23,7 @@ #include "llvm/Function.h" #include "llvm/Support/Debug.h" #include "llvm/ADT/Statistic.h" +#include using namespace llvm; namespace { Index: llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp diff -u llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp:1.28 llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp:1.29 --- llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp:1.28Mon Jan 16 15:22:38 2006 +++ llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp Sun Jan 22 17:37:17 2006 @@ -28,6 +28,7 @@ #include "llvm/Support/Debug.h" #include "llvm/Support/MathExtras.h" #include +#include using namespace llvm; namespace { Index: llvm/lib/Target/Alpha/AlphaISelPattern.cpp diff -u llvm/lib/Target/Alpha/AlphaISelPattern.cpp:1.198 llvm/lib/Target/Alpha/AlphaISelPattern.cpp:1.199 --- llvm/lib/Target/Alpha/AlphaISelPattern.cpp:1.198Sun Dec 25 11:36:48 2005 +++ llvm/lib/Target/Alpha/AlphaISelPattern.cpp Sun Jan 22 17:37:17 2006 @@ -16,7 +16,6 @@ #include "AlphaTargetMachine.h" #include "AlphaISelLowering.h" #include "llvm/Constants.h" // FIXME: REMOVE -#include "llvm/Function.h" #include "llvm/Module.h" #include "llvm/CodeGen/MachineInstrBuilder.h" #include "llvm/CodeGen/MachineConstantPool.h" // FIXME: REMOVE @@ -31,8 +30,9 @@ #include "llvm/ADT/Statistic.h" #include "llvm/Support/Debug.h" #include "llvm/Support/CommandLine.h" -#include #include +#include +#include using namespace llvm; namespace llvm { ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp AlphaISelDAGToDAG.cpp AlphaISelPattern.cpp AlphaInstrFormats.td AlphaInstrInfo.td
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.27 -> 1.28 AlphaISelDAGToDAG.cpp updated: 1.22 -> 1.23 AlphaISelPattern.cpp updated: 1.197 -> 1.198 AlphaInstrFormats.td updated: 1.20 -> 1.21 AlphaInstrInfo.td updated: 1.89 -> 1.90 --- Log message: add br pattern, unify JSR and BSR ISel instrs, and add BSR support for DAG --- Diffs of the changes: (+38 -32) AlphaAsmPrinter.cpp |6 +++--- AlphaISelDAGToDAG.cpp | 23 ++- AlphaISelPattern.cpp | 15 --- AlphaInstrFormats.td |9 ++--- AlphaInstrInfo.td | 17 +++-- 5 files changed, 38 insertions(+), 32 deletions(-) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.27 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.28 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.27 Wed Nov 30 12:54:34 2005 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Sun Dec 25 11:36:48 2005 @@ -136,9 +136,9 @@ case MachineOperand::MO_GlobalAddress: //Abuse PCrel to specify pcrel calls //calls are the only thing that use this flag -if (MO.isPCRelative()) - O << PrivateGlobalPrefix << Mang->getValueName(MO.getGlobal()) << "..ng"; -else +// if (MO.isPCRelative()) +// O << PrivateGlobalPrefix << Mang->getValueName(MO.getGlobal()) << "..ng"; +// else O << Mang->getValueName(MO.getGlobal()); return; Index: llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp diff -u llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp:1.22 llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp:1.23 --- llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp:1.22Sat Dec 24 19:34:27 2005 +++ llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp Sun Dec 25 11:36:48 2005 @@ -194,9 +194,6 @@ CurDAG->getBasicBlock(Dest), Chain); } - case ISD::BR: -return CurDAG->SelectNodeTo(N, Alpha::BR_DAG, MVT::Other, N->getOperand(1), -Select(N->getOperand(0))); case ISD::FrameIndex: { int FI = cast(N)->getIndex(); return CurDAG->SelectNodeTo(N, Alpha::LDA, MVT::i64, @@ -214,7 +211,7 @@ Chain.getValue(1)); Chain = CurDAG->getCopyToReg(Chain, Alpha::R27, Select(Op.getOperand(0)), Chain.getValue(1)); -Chain = CurDAG->getTargetNode(Alpha::JSRsDAG, MVT::Other, MVT::Flag, +Chain = CurDAG->getTargetNode(Alpha::JSRs, MVT::Other, MVT::Flag, Chain, Chain.getValue(1)); Chain = CurDAG->getCopyFromReg(Chain, Alpha::R27, MVT::i64, Chain.getValue(1)); @@ -359,7 +356,7 @@ SDNode *N = Op.Val; SDOperand Chain = Select(N->getOperand(0)); - SDOperand Addr = Select(N->getOperand(1)); + SDOperand Addr = N->getOperand(1); SDOperand InFlag; // Null incoming flag value. std::vector CallOperands; @@ -404,12 +401,20 @@ } - Chain = CurDAG->getCopyToReg(Chain, Alpha::R27, Addr, InFlag); - InFlag = Chain.getValue(1); // Finally, once everything is in registers to pass to the call, emit the // call itself. - Chain = CurDAG->getTargetNode(Alpha::JSRDAG, MVT::Other, MVT::Flag, - Chain, InFlag ); + if (Addr.getOpcode() == AlphaISD::GPRelLo) { + SDOperand GOT = getGlobalBaseReg(); + Chain = CurDAG->getCopyToReg(Chain, Alpha::R29, GOT, InFlag); + InFlag = Chain.getValue(1); + Chain = CurDAG->getTargetNode(Alpha::BSR, MVT::Other, MVT::Flag, + Addr.getOperand(0), Chain, InFlag); + } else { + Chain = CurDAG->getCopyToReg(Chain, Alpha::R27, Select(Addr), InFlag); + InFlag = Chain.getValue(1); + Chain = CurDAG->getTargetNode(Alpha::JSR, MVT::Other, MVT::Flag, + Chain, InFlag ); + } InFlag = Chain.getValue(1); std::vector CallResults; Index: llvm/lib/Target/Alpha/AlphaISelPattern.cpp diff -u llvm/lib/Target/Alpha/AlphaISelPattern.cpp:1.197 llvm/lib/Target/Alpha/AlphaISelPattern.cpp:1.198 --- llvm/lib/Target/Alpha/AlphaISelPattern.cpp:1.197Sat Dec 24 19:34:27 2005 +++ llvm/lib/Target/Alpha/AlphaISelPattern.cpp Sun Dec 25 11:36:48 2005 @@ -824,17 +824,18 @@ } } //build the right kind of call - GlobalAddressSDNode *GASD = dyn_cast(N.getOperand(1)); - if (GASD && !GASD->getGlobal()->isExternal()) { + if (N.getOperand(1).getOpcode() == AlphaISD::GPRelLo) { //use PC relative branch call AlphaLowering.restoreGP(BB); -BuildMI(BB, Alpha::BSR, 1, Alpha::R26) - .addGlobalAddress(GASD->getGlobal(),true); +BuildMI(BB, Alpha::BSR, 1) + .addGlobalAddress(cast(N.getOperand(1) + .getOperand(0)) + ->getGlobal(),true); } else { //no need to restore GP as we are doing an indirect call Tmp1 = SelectExpr
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.26 -> 1.27 --- Log message: No longer track value types for asm printer operands, and remove them as an argument to every operand printing function. Requires some slight tweaks to x86, the only user. --- Diffs of the changes: (+2 -3) AlphaAsmPrinter.cpp |5 ++--- 1 files changed, 2 insertions(+), 3 deletions(-) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.26 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.27 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.26 Mon Nov 21 02:29:17 2005 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Wed Nov 30 12:54:34 2005 @@ -18,7 +18,6 @@ #include "llvm/Module.h" #include "llvm/Type.h" #include "llvm/Assembly/Writer.h" -#include "llvm/CodeGen/ValueTypes.h" #include "llvm/CodeGen/AsmPrinter.h" #include "llvm/Target/TargetMachine.h" #include "llvm/Support/Mangler.h" @@ -54,7 +53,7 @@ } bool printInstruction(const MachineInstr *MI); void printOp(const MachineOperand &MO, bool IsCallOp = false); -void printOperand(const MachineInstr *MI, int opNum, MVT::ValueType VT); +void printOperand(const MachineInstr *MI, int opNum); void printBaseOffsetPair (const MachineInstr *MI, int i, bool brackets=true); void printMachineInstruction(const MachineInstr *MI); bool runOnMachineFunction(MachineFunction &F); @@ -75,7 +74,7 @@ #include "AlphaGenAsmWriter.inc" -void AlphaAsmPrinter::printOperand(const MachineInstr *MI, int opNum, MVT::ValueType VT) +void AlphaAsmPrinter::printOperand(const MachineInstr *MI, int opNum) { const MachineOperand &MO = MI->getOperand(opNum); if (MO.getType() == MachineOperand::MO_MachineRegister) { ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.25 -> 1.26 --- Log message: Switch to using the generic constant pool emitter impl, use shorter CPI names --- Diffs of the changes: (+2 -25) AlphaAsmPrinter.cpp | 27 ++- 1 files changed, 2 insertions(+), 25 deletions(-) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.25 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.26 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.25 Mon Nov 21 01:51:23 2005 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Mon Nov 21 02:29:17 2005 @@ -18,7 +18,6 @@ #include "llvm/Module.h" #include "llvm/Type.h" #include "llvm/Assembly/Writer.h" -#include "llvm/CodeGen/MachineConstantPool.h" #include "llvm/CodeGen/ValueTypes.h" #include "llvm/CodeGen/AsmPrinter.h" #include "llvm/Target/TargetMachine.h" @@ -55,7 +54,6 @@ } bool printInstruction(const MachineInstr *MI); void printOp(const MachineOperand &MO, bool IsCallOp = false); -void printConstantPool(MachineConstantPool *MCP); void printOperand(const MachineInstr *MI, int opNum, MVT::ValueType VT); void printBaseOffsetPair (const MachineInstr *MI, int i, bool brackets=true); void printMachineInstruction(const MachineInstr *MI); @@ -128,7 +126,7 @@ } case MachineOperand::MO_ConstantPoolIndex: -O << PrivateGlobalPrefix << "CPI" << CurrentFnName << "_" +O << PrivateGlobalPrefix << "CPI" << getFunctionNumber() << "_" << MO.getConstantPoolIndex(); return; @@ -173,7 +171,7 @@ O << "\n\n"; // Print out constants referenced by the function - printConstantPool(MF.getConstantPool()); + EmitConstantPool(MF.getConstantPool()); // Print out labels for the function. SwitchSection("\t.section .text", MF.getFunction()); @@ -204,27 +202,6 @@ return false; } - -/// printConstantPool - Print to the current output stream assembly -/// representations of the constants in the constant pool MCP. This is -/// used to print out constants which have been "spilled to memory" by -/// the code generator. -/// -void AlphaAsmPrinter::printConstantPool(MachineConstantPool *MCP) { - const std::vector &CP = MCP->getConstants(); - const TargetData &TD = TM.getTargetData(); - - if (CP.empty()) return; - - SwitchSection("\t.section .rodata", 0); - for (unsigned i = 0, e = CP.size(); i != e; ++i) { -EmitAlignment(TD.getTypeAlignmentShift(CP[i]->getType())); -O << PrivateGlobalPrefix << "CPI" << CurrentFnName << "_" << i - << ":\t\t\t\t\t" << CommentString << *CP[i] << "\n"; -EmitGlobalConstant(CP[i]); - } -} - bool AlphaAsmPrinter::doInitialization(Module &M) { AsmPrinter::doInitialization(M); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.24 -> 1.25 --- Log message: Adjust to capitalized AsmPrinter method names --- Diffs of the changes: (+6 -6) AlphaAsmPrinter.cpp | 12 ++-- 1 files changed, 6 insertions(+), 6 deletions(-) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.24 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.25 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.24 Mon Nov 21 01:38:08 2005 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Mon Nov 21 01:51:23 2005 @@ -169,7 +169,7 @@ /// method to print assembly for each instruction. /// bool AlphaAsmPrinter::runOnMachineFunction(MachineFunction &MF) { - setupMachineFunction(MF); + SetupMachineFunction(MF); O << "\n\n"; // Print out constants referenced by the function @@ -177,7 +177,7 @@ // Print out labels for the function. SwitchSection("\t.section .text", MF.getFunction()); - emitAlignment(4); + EmitAlignment(4); O << "\t.globl " << CurrentFnName << "\n"; O << "\t.ent " << CurrentFnName << "\n"; @@ -218,10 +218,10 @@ SwitchSection("\t.section .rodata", 0); for (unsigned i = 0, e = CP.size(); i != e; ++i) { -emitAlignment(TD.getTypeAlignmentShift(CP[i]->getType())); +EmitAlignment(TD.getTypeAlignmentShift(CP[i]->getType())); O << PrivateGlobalPrefix << "CPI" << CurrentFnName << "_" << i << ":\t\t\t\t\t" << CommentString << *CP[i] << "\n"; -emitGlobalConstant(CP[i]); +EmitGlobalConstant(CP[i]); } } @@ -285,7 +285,7 @@ abort(); } -emitAlignment(Align); +EmitAlignment(Align); O << "\t.type " << name << ",@object\n"; O << "\t.size " << name << "," << Size << "\n"; O << name << ":\t\t\t\t# "; @@ -293,7 +293,7 @@ O << " = "; WriteAsOperand(O, C, false, false, &M); O << "\n"; -emitGlobalConstant(C); +EmitGlobalConstant(C); } } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.23 -> 1.24 --- Log message: Use PrivateGlobalPrefix for basic blocks --- Diffs of the changes: (+6 -6) AlphaAsmPrinter.cpp | 12 ++-- 1 files changed, 6 insertions(+), 6 deletions(-) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.23 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.24 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.23 Mon Nov 21 01:30:28 2005 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Mon Nov 21 01:38:08 2005 @@ -37,8 +37,7 @@ unsigned LabelNumber; AlphaAsmPrinter(std::ostream &o, TargetMachine &tm) - : AsmPrinter(o, tm), LabelNumber(0) -{ + : AsmPrinter(o, tm), LabelNumber(0) { AlignmentIsInBytes = false; PrivateGlobalPrefix = "$"; } @@ -121,7 +120,8 @@ case MachineOperand::MO_MachineBasicBlock: { MachineBasicBlock *MBBOp = MO.getMachineBasicBlock(); -O << "$LBB" << Mang->getValueName(MBBOp->getParent()->getFunction()) +O << PrivateGlobalPrefix << "LBB" + << Mang->getValueName(MBBOp->getParent()->getFunction()) << "_" << MBBOp->getNumber() << "\t" << CommentString << " " << MBBOp->getBasicBlock()->getName(); return; @@ -140,7 +140,7 @@ //Abuse PCrel to specify pcrel calls //calls are the only thing that use this flag if (MO.isPCRelative()) - O << "$" << Mang->getValueName(MO.getGlobal()) << "..ng"; + O << PrivateGlobalPrefix << Mang->getValueName(MO.getGlobal()) << "..ng"; else O << Mang->getValueName(MO.getGlobal()); return; @@ -187,8 +187,8 @@ for (MachineFunction::const_iterator I = MF.begin(), E = MF.end(); I != E; ++I) { // Print a label for the basic block. -O << "$LBB" << CurrentFnName << "_" << I->getNumber() << ":\t" - << CommentString << " " << I->getBasicBlock()->getName() << "\n"; +O << PrivateGlobalPrefix << "LBB" << CurrentFnName << "_" << I->getNumber() + << ":\t" << CommentString << " " << I->getBasicBlock()->getName() << "\n"; for (MachineBasicBlock::const_iterator II = I->begin(), E = I->end(); II != E; ++II) { // Print the assembly for the instruction. ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.22 -> 1.23 --- Log message: Switch to the new shared SwitchSection --- Diffs of the changes: (+6 -26) AlphaAsmPrinter.cpp | 32 ++-- 1 files changed, 6 insertions(+), 26 deletions(-) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.22 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.23 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.22 Mon Nov 21 00:55:27 2005 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Mon Nov 21 01:30:28 2005 @@ -21,12 +21,9 @@ #include "llvm/CodeGen/MachineConstantPool.h" #include "llvm/CodeGen/ValueTypes.h" #include "llvm/CodeGen/AsmPrinter.h" - #include "llvm/Target/TargetMachine.h" - #include "llvm/Support/Mangler.h" #include "llvm/ADT/Statistic.h" -#include "llvm/Support/CommandLine.h" using namespace llvm; @@ -66,7 +63,6 @@ bool runOnMachineFunction(MachineFunction &F); bool doInitialization(Module &M); bool doFinalization(Module &M); -void switchSection(std::ostream &OS, const char *NewSection); }; } // end of anonymous namespace @@ -180,7 +176,7 @@ printConstantPool(MF.getConstantPool()); // Print out labels for the function. - switchSection(O, "text"); + SwitchSection("\t.section .text", MF.getFunction()); emitAlignment(4); O << "\t.globl " << CurrentFnName << "\n"; O << "\t.ent " << CurrentFnName << "\n"; @@ -220,9 +216,8 @@ if (CP.empty()) return; - switchSection(O, "rodata"); + SwitchSection("\t.section .rodata", 0); for (unsigned i = 0, e = CP.size(); i != e; ++i) { -//switchSection(O, "section .rodata, \"dr\""); emitAlignment(TD.getTypeAlignmentShift(CP[i]->getType())); O << PrivateGlobalPrefix << "CPI" << CurrentFnName << "_" << i << ":\t\t\t\t\t" << CommentString << *CP[i] << "\n"; @@ -242,19 +237,6 @@ return false; } - -// switchSection - Switch to the specified section of the executable if we are -// not already in it! -// -void AlphaAsmPrinter::switchSection(std::ostream &OS, const char *NewSection) -{ - if (CurSection != NewSection) { -CurSection = NewSection; -if (!CurSection.empty()) - OS << "\t.section ." << NewSection << "\n"; - } -} - bool AlphaAsmPrinter::doFinalization(Module &M) { const TargetData &TD = TM.getTargetData(); @@ -269,7 +251,7 @@ if (C->isNullValue() && (I->hasLinkOnceLinkage() || I->hasInternalLinkage() || I->hasWeakLinkage() /* FIXME: Verify correct */)) { -switchSection(O, "data"); +SwitchSection("\t.section .data", I); if (I->hasInternalLinkage()) O << "\t.local " << name << "\n"; @@ -284,8 +266,8 @@ case GlobalValue::WeakLinkage: // FIXME: Verify correct for weak. // Nonnull linkonce -> weak O << "\t.weak " << name << "\n"; - switchSection(O, ""); O << "\t.section\t.llvm.linkonce.d." << name << ",\"aw\",@progbits\n"; + SwitchSection("", I); break; case GlobalValue::AppendingLinkage: // FIXME: appending linkage variables should go into a section of @@ -295,10 +277,8 @@ O << "\t.globl " << name << "\n"; // FALL THROUGH case GlobalValue::InternalLinkage: - if (C->isNullValue()) -switchSection(O, "bss"); - else -switchSection(O, "data"); + SwitchSection(C->isNullValue() ? "\t.section .bss" : +"\t.section .data", I); break; case GlobalValue::GhostLinkage: std::cerr << "GhostLinkage cannot appear in AlphaAsmPrinter!\n"; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.21 -> 1.22 --- Log message: Rename SwitchSection -> switchSection to avoid conflicting with a future change. --- Diffs of the changes: (+10 -10) AlphaAsmPrinter.cpp | 20 ++-- 1 files changed, 10 insertions(+), 10 deletions(-) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.21 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.22 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.21 Mon Nov 21 00:51:52 2005 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Mon Nov 21 00:55:27 2005 @@ -66,7 +66,7 @@ bool runOnMachineFunction(MachineFunction &F); bool doInitialization(Module &M); bool doFinalization(Module &M); -void SwitchSection(std::ostream &OS, const char *NewSection); +void switchSection(std::ostream &OS, const char *NewSection); }; } // end of anonymous namespace @@ -180,7 +180,7 @@ printConstantPool(MF.getConstantPool()); // Print out labels for the function. - SwitchSection(O, "text"); + switchSection(O, "text"); emitAlignment(4); O << "\t.globl " << CurrentFnName << "\n"; O << "\t.ent " << CurrentFnName << "\n"; @@ -220,9 +220,9 @@ if (CP.empty()) return; - SwitchSection(O, "rodata"); + switchSection(O, "rodata"); for (unsigned i = 0, e = CP.size(); i != e; ++i) { -//SwitchSection(O, "section .rodata, \"dr\""); +//switchSection(O, "section .rodata, \"dr\""); emitAlignment(TD.getTypeAlignmentShift(CP[i]->getType())); O << PrivateGlobalPrefix << "CPI" << CurrentFnName << "_" << i << ":\t\t\t\t\t" << CommentString << *CP[i] << "\n"; @@ -243,10 +243,10 @@ } -// SwitchSection - Switch to the specified section of the executable if we are +// switchSection - Switch to the specified section of the executable if we are // not already in it! // -void AlphaAsmPrinter::SwitchSection(std::ostream &OS, const char *NewSection) +void AlphaAsmPrinter::switchSection(std::ostream &OS, const char *NewSection) { if (CurSection != NewSection) { CurSection = NewSection; @@ -269,7 +269,7 @@ if (C->isNullValue() && (I->hasLinkOnceLinkage() || I->hasInternalLinkage() || I->hasWeakLinkage() /* FIXME: Verify correct */)) { -SwitchSection(O, "data"); +switchSection(O, "data"); if (I->hasInternalLinkage()) O << "\t.local " << name << "\n"; @@ -284,7 +284,7 @@ case GlobalValue::WeakLinkage: // FIXME: Verify correct for weak. // Nonnull linkonce -> weak O << "\t.weak " << name << "\n"; - SwitchSection(O, ""); + switchSection(O, ""); O << "\t.section\t.llvm.linkonce.d." << name << ",\"aw\",@progbits\n"; break; case GlobalValue::AppendingLinkage: @@ -296,9 +296,9 @@ // FALL THROUGH case GlobalValue::InternalLinkage: if (C->isNullValue()) -SwitchSection(O, "bss"); +switchSection(O, "bss"); else -SwitchSection(O, "data"); +switchSection(O, "data"); break; case GlobalValue::GhostLinkage: std::cerr << "GhostLinkage cannot appear in AlphaAsmPrinter!\n"; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp
Changes in directory llvm/lib/Target/Alpha: AlphaAsmPrinter.cpp updated: 1.20 -> 1.21 --- Log message: Start using PrivateGlobalPrefix correctly --- Diffs of the changes: (+5 -3) AlphaAsmPrinter.cpp |8 +--- 1 files changed, 5 insertions(+), 3 deletions(-) Index: llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp diff -u llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.20 llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.21 --- llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp:1.20 Thu Sep 29 17:54:56 2005 +++ llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp Mon Nov 21 00:51:52 2005 @@ -43,6 +43,7 @@ : AsmPrinter(o, tm), LabelNumber(0) { AlignmentIsInBytes = false; + PrivateGlobalPrefix = "$"; } /// We name each basic block in a Function with a unique number, so @@ -131,7 +132,8 @@ } case MachineOperand::MO_ConstantPoolIndex: -O << "$CPI" << CurrentFnName << "_" << MO.getConstantPoolIndex(); +O << PrivateGlobalPrefix << "CPI" << CurrentFnName << "_" + << MO.getConstantPoolIndex(); return; case MachineOperand::MO_ExternalSymbol: @@ -222,8 +224,8 @@ for (unsigned i = 0, e = CP.size(); i != e; ++i) { //SwitchSection(O, "section .rodata, \"dr\""); emitAlignment(TD.getTypeAlignmentShift(CP[i]->getType())); -O << "$CPI" << CurrentFnName << "_" << i << ":\t\t\t\t\t" << CommentString - << *CP[i] << "\n"; +O << PrivateGlobalPrefix << "CPI" << CurrentFnName << "_" << i + << ":\t\t\t\t\t" << CommentString << *CP[i] << "\n"; emitGlobalConstant(CP[i]); } } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits