[llvm-commits] CVS: llvm/lib/Target/PowerPC/PPCInstrInfo.td PPCRegisterInfo.td
Changes in directory llvm/lib/Target/PowerPC: PPCInstrInfo.td updated: 1.159 -> 1.160 PPCRegisterInfo.td updated: 1.26 -> 1.27 --- Log message: Add a second vector type to the VRRC register class, and fix some patterns so that tablegen can infer all types. --- Diffs of the changes: (+6 -6) PPCInstrInfo.td|6 +++--- PPCRegisterInfo.td |6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) Index: llvm/lib/Target/PowerPC/PPCInstrInfo.td diff -u llvm/lib/Target/PowerPC/PPCInstrInfo.td:1.159 llvm/lib/Target/PowerPC/PPCInstrInfo.td:1.160 --- llvm/lib/Target/PowerPC/PPCInstrInfo.td:1.159 Wed Dec 14 16:54:33 2005 +++ llvm/lib/Target/PowerPC/PPCInstrInfo.td Fri Dec 16 03:19:13 2005 @@ -946,11 +946,11 @@ (srl GPRC:$rS, (sub 32, GPRC:$rB))), (RLWNM GPRC:$rS, GPRC:$rB, 0, 31)>; -def : Pat<(zext GPRC:$in), +def : Pat<(i64 (zext GPRC:$in)), (RLDICL (OR4To8 GPRC:$in, GPRC:$in), 0, 32)>; -def : Pat<(anyext GPRC:$in), +def : Pat<(i64 (anyext GPRC:$in)), (OR4To8 GPRC:$in, GPRC:$in)>; -def : Pat<(trunc G8RC:$in), +def : Pat<(i32 (trunc G8RC:$in)), (OR8To4 G8RC:$in, G8RC:$in)>; // SHL Index: llvm/lib/Target/PowerPC/PPCRegisterInfo.td diff -u llvm/lib/Target/PowerPC/PPCRegisterInfo.td:1.26 llvm/lib/Target/PowerPC/PPCRegisterInfo.td:1.27 --- llvm/lib/Target/PowerPC/PPCRegisterInfo.td:1.26 Wed Nov 30 22:51:06 2005 +++ llvm/lib/Target/PowerPC/PPCRegisterInfo.td Fri Dec 16 03:19:13 2005 @@ -191,9 +191,9 @@ F8, F9, F10, F11, F12, F13, F14, F15, F16, F17, F18, F19, F20, F21, F22, F23, F24, F25, F26, F27, F28, F29, F30, F31]>; -def VRRC : RegisterClass<"PPC", [v4f32], 128, [V0, V1, V2, V3, V4, V5, V6, V7, - V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, V22, V23, - V24, V25, V26, V27, V28, V29, V30, V31]>; +def VRRC : RegisterClass<"PPC", [v4f32,v4i32], 128, [V0, V1, V2, V3, V4, V5, + V6, V7, V8, V9, V10, V11, V12, V13, V14, V15, V16, V17, V18, V19, V20, V21, + V22, V23, V24, V25, V26, V27, V28, V29, V30, V31]>; def CRRC : RegisterClass<"PPC", [i32], 32, [CR0, CR1, CR5, CR6, CR7, CR2, CR3, CR4]>; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm-www/pubs/index.html
Changes in directory llvm-www/pubs: index.html updated: 1.34 -> 1.35 --- Log message: --- Diffs of the changes: (+1 -1) index.html |2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm-www/pubs/index.html diff -u llvm-www/pubs/index.html:1.34 llvm-www/pubs/index.html:1.35 --- llvm-www/pubs/index.html:1.34 Fri Dec 16 11:44:29 2005 +++ llvm-www/pubs/index.htmlFri Dec 16 12:33:09 2005 @@ -35,7 +35,7 @@ "How Successful is Data Structure Analysis in Isolating and Analyzing - Linked Data Structures?" Patrick Meredith, Balpreet Pankaj, Swarup Sahoo, Chris Lattner and Vikram Adve Technical Report, Computer Science Dept., Univ. of + Linked Data Structures?" Patrick Meredith, Balpreet Pankaj, Swarup Sahoo, Chris Lattner and Vikram Adve Technical Report #UIUCDCS-R-2005-2658, Computer Science Dept., Univ. of Illinois, Dec. 2005. ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
Changes in directory llvm/lib/Target/PowerPC: PPCAsmPrinter.cpp updated: 1.127 -> 1.128 --- Log message: Weak and linkonce global vars should still have a .globl emitted for them --- Diffs of the changes: (+2 -1) PPCAsmPrinter.cpp |3 ++- 1 files changed, 2 insertions(+), 1 deletion(-) Index: llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp diff -u llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp:1.127 llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp:1.128 --- llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp:1.127 Thu Dec 15 18:22:14 2005 +++ llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp Fri Dec 16 15:46:14 2005 @@ -468,7 +468,8 @@ switch (I->getLinkage()) { case GlobalValue::LinkOnceLinkage: case GlobalValue::WeakLinkage: -O << ".weak_definition " << name << '\n' +O << ".globl " << name << '\n' + << ".weak_definition " << name << '\n' << ".private_extern " << name << '\n'; SwitchSection(".section __DATA,__datacoal_nt,coalesced", I); break; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm-gcc/gcc/llvm-expand.c llvm-out.h llvm-representation.c llvm-representation.h toplev.c
Changes in directory llvm-gcc/gcc: llvm-expand.c updated: 1.121 -> 1.122 llvm-out.h updated: 1.6 -> 1.7 llvm-representation.c updated: 1.22 -> 1.23 llvm-representation.h updated: 1.21 -> 1.22 toplev.c updated: 1.6 -> 1.7 --- Log message: http://llvm.cs.uiuc.edu/bugs/show_bug.cgi?id=676 Fixes a bug where all debug information showed the main compile unit and not includes. --- Diffs of the changes: (+112 -76) llvm-expand.c | 136 +- llvm-out.h|4 - llvm-representation.c | 23 llvm-representation.h | 10 +++ toplev.c | 15 - 5 files changed, 112 insertions(+), 76 deletions(-) Index: llvm-gcc/gcc/llvm-expand.c diff -u llvm-gcc/gcc/llvm-expand.c:1.121 llvm-gcc/gcc/llvm-expand.c:1.122 --- llvm-gcc/gcc/llvm-expand.c:1.121Wed Dec 7 13:35:10 2005 +++ llvm-gcc/gcc/llvm-expand.c Fri Dec 16 16:17:32 2005 @@ -7834,7 +7834,6 @@ static llvm_type *emptyStructTy; static llvm_type *ptrToEmptyStructTy; -static llvm_global *dbCompileUnitGlobal; static llvm_global *dbTranslationUnitsGlobal; static llvm_global *dbGlobalsGlobal; @@ -7881,62 +7880,85 @@ emits file level debug info as LLVM globals */ -void llvm_emit_debug_context_info(const char *fileName, - const char *path, - const char *producer){ - llvm_constant *CA = 0; - llvm_global *pathStr = EmitGlobalString(fileName); - llvm_global *fileNameStr = EmitGlobalString(path); - llvm_global *producerStr = EmitGlobalString(producer); - llvm_value **Elements = (llvm_value**) xcalloc(7, sizeof(llvm_value*)); - llvm_instruction *gep = 0; - - /* Infer language of file, stolen from dwarf2out.c */ - const char *language_string = lang_hooks.name; - if (strcmp (language_string, "GNU C++") == 0) -LLVM_DEBUG_LANG_CODE = 0x0004; /*DW_LANG_C_plus_plus;*/ - else if (strcmp (language_string, "GNU Ada") == 0) -LLVM_DEBUG_LANG_CODE = 0x000d; /* DW_LANG_Ada95; */ - else if (strcmp (language_string, "GNU F77") == 0) -LLVM_DEBUG_LANG_CODE = 0x0007; /* DW_LANG_Fortran77; */ - else if (strcmp (language_string, "GNU Pascal") == 0) -LLVM_DEBUG_LANG_CODE = 0x0009; /* DW_LANG_Pascal83; */ - else if (strcmp (language_string, "GNU Java") == 0) -LLVM_DEBUG_LANG_CODE = 0x000b; /* DW_LANG_Java; */ - else -LLVM_DEBUG_LANG_CODE = 0x0001; /* DW_LANG_C89; */ - - - /* The constant in Elements[0] is DW_TAG_COMPILE_UNIT */ - Elements[0] = llvm_constant_new_integral(UIntTy, 17); - Elements[1] = llvm_constant_new_integral(UShortTy, LLVM_DEBUG_VERSION); - Elements[2] = llvm_constant_new_integral(UShortTy, LLVM_DEBUG_LANG_CODE); +llvm_global *llvm_emit_debug_context_info(const char *fullpath) { + llvm_global *dbCompileUnitGlobal = NULL; - gep = create_gep3(G2V(fileNameStr), -llvm_constant_intptr_0, -llvm_constant_intptr_0); - Elements[3] = G2V(llvm_constant_expr_new(gep)); - - gep = create_gep3(G2V(pathStr), -llvm_constant_intptr_0, -llvm_constant_intptr_0); - Elements[4] = G2V(llvm_constant_expr_new(gep)); - - gep = create_gep3(G2V(producerStr), -llvm_constant_intptr_0, -llvm_constant_intptr_0); - Elements[5] = G2V(llvm_constant_expr_new(gep)); - - Elements[6] = G2V(dbTranslationUnitsGlobal); - CA = G2C(llvm_constant_aggregate_new(dbCompileUnitTy, Elements)); - - dbCompileUnitGlobal = llvm_global_new(dbCompileUnitTy, "d.compile_unit"); - dbCompileUnitGlobal->isConstant = 1; - dbCompileUnitGlobal->Linkage = L_Internal; - dbCompileUnitGlobal->Init = CA; + if (debug_info_level > DINFO_LEVEL_NONE) { +const char *globalName; +llvm_global *pathStr; +llvm_global *fileNameStr; +llvm_global *producerStr; +llvm_constant *CA = 0; +llvm_value **Elements = (llvm_value**) xcalloc(7, sizeof(llvm_value*)); +llvm_instruction *gep = 0; +static compileUnitCount = 0; +char *buf = xstrdup(fullpath); +char *path = buf; +char *fileName = strrchr(buf, '/'); + +if(fileName){ + *fileName = '\0'; + fileName++; +} else { + path = "."; + fileName = buf; +} - llvm_ilist_push_back(llvm_global, TheProgram.Globals, dbCompileUnitGlobal); +pathStr = EmitGlobalString(path); +fileNameStr = EmitGlobalString(fileName); +producerStr = EmitGlobalString("3.4.x"); +free(buf); + +/* Infer language of file, stolen from dwarf2out.c */ +const char *language_string = lang_hooks.name; +if (strcmp (language_string, "GNU C++") == 0) + LLVM_DEBUG_LANG_CODE = 0x0004; /*DW_LANG_C_plus_plus;*/ +else if (strcmp (language_string, "GNU Ada") == 0) + LLVM_DEBUG_LANG_CODE = 0x000d; /* DW_LANG_Ada95; */ +else if (strcmp (language_string, "GNU F77") == 0) + LLVM_DEBUG_LANG_CODE = 0x0007; /* DW_LANG_Fortran77; */ +else
[llvm-commits] CVS: llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp SelectionDAG.cpp SelectionDAGISel.cpp
Changes in directory llvm/lib/CodeGen/SelectionDAG: LegalizeDAG.cpp updated: 1.228 -> 1.229 SelectionDAG.cpp updated: 1.224 -> 1.225 SelectionDAGISel.cpp updated: 1.116 -> 1.117 --- Log message: Added source file/line correspondence for dwarf (PowerPC only at this point.) --- Diffs of the changes: (+36 -4) LegalizeDAG.cpp | 37 ++--- SelectionDAG.cpp |1 + SelectionDAGISel.cpp |2 +- 3 files changed, 36 insertions(+), 4 deletions(-) Index: llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp diff -u llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.228 llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.229 --- llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.228 Mon Dec 12 21:03:23 2005 +++ llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp Fri Dec 16 16:45:28 2005 @@ -611,9 +611,18 @@ switch (TLI.getOperationAction(ISD::LOCATION, MVT::Other)) { case TargetLowering::Promote: default: assert(0 && "This action is not supported yet!"); -case TargetLowering::Expand: - // If the target doesn't support line numbers, ignore this node. - Result = Tmp1; +case TargetLowering::Expand: { +MachineDebugInfo &DebugInfo = DAG.getMachineFunction().getDebugInfo(); +std::vector Ops; +Ops.push_back(Tmp1); // chain +Ops.push_back(Node->getOperand(1)); // line # +Ops.push_back(Node->getOperand(2)); // col # +const std::string &fname = cast(Node->getOperand(3))->getValue(); +const std::string &dirname=cast(Node->getOperand(4))->getValue(); +unsigned id = DebugInfo.RecordSource(fname, dirname); +Ops.push_back(DAG.getConstant(id, MVT::i32)); // source file id +Result = DAG.getNode(ISD::DEBUG_LOC, MVT::Other, Ops); + } break; case TargetLowering::Legal: if (Tmp1 != Node->getOperand(0) || @@ -635,6 +644,28 @@ break; } break; + + case ISD::DEBUG_LOC: +assert(Node->getNumOperands() == 4 && "Invalid DEBUG_LOC node!"); +switch (TLI.getOperationAction(ISD::DEBUG_LOC, MVT::Other)) { +case TargetLowering::Promote: +case TargetLowering::Expand: +default: assert(0 && "This action is not supported yet!"); +case TargetLowering::Legal: + Tmp1 = LegalizeOp(Node->getOperand(0)); // Legalize the chain. + Tmp2 = LegalizeOp(Node->getOperand(1)); // Legalize the line #. + Tmp3 = LegalizeOp(Node->getOperand(2)); // Legalize the col #. + Tmp4 = LegalizeOp(Node->getOperand(3)); // Legalize the source file id. + + if (Tmp1 != Node->getOperand(0) || + Tmp2 != Node->getOperand(1) || + Tmp3 != Node->getOperand(2) || + Tmp4 != Node->getOperand(3)) { +Result = DAG.getNode(ISD::DEBUG_LOC,MVT::Other, Tmp1, Tmp2, Tmp3, Tmp4); + } + break; +} +break; case ISD::Constant: // We know we don't need to expand constants here, constants only have one Index: llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp diff -u llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1.224 llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1.225 --- llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1.224Fri Dec 9 18:37:58 2005 +++ llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp Fri Dec 16 16:45:28 2005 @@ -1961,6 +1961,7 @@ // Debug info case ISD::LOCATION: return "location"; + case ISD::DEBUG_LOC: return "debug_loc"; case ISD::CONDCODE: switch (cast(this)->get()) { Index: llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp diff -u llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1.116 llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1.117 --- llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1.116Tue Dec 13 11:40:33 2005 +++ llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp Fri Dec 16 16:45:28 2005 @@ -918,8 +918,8 @@ if (ConstantStruct *CS = dyn_cast(cunit->getInitializer())) { if (CS->getNumOperands() > 0) { - Ops.push_back(DAG.getString(getStringValue(CS->getOperand(4; Ops.push_back(DAG.getString(getStringValue(CS->getOperand(3; + Ops.push_back(DAG.getString(getStringValue(CS->getOperand(4; } } } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/CodeGen/MachineFunction.cpp
Changes in directory llvm/lib/CodeGen: MachineFunction.cpp updated: 1.81 -> 1.82 --- Log message: Added source file/line correspondence for dwarf (PowerPC only at this point.) --- Diffs of the changes: (+1 -1) MachineFunction.cpp |2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/lib/CodeGen/MachineFunction.cpp diff -u llvm/lib/CodeGen/MachineFunction.cpp:1.81 llvm/lib/CodeGen/MachineFunction.cpp:1.82 --- llvm/lib/CodeGen/MachineFunction.cpp:1.81 Wed Oct 12 07:09:05 2005 +++ llvm/lib/CodeGen/MachineFunction.cppFri Dec 16 16:45:28 2005 @@ -108,7 +108,7 @@ MachineFunction::MachineFunction(const Function *F, const TargetMachine &TM) - : Annotation(MF_AID), Fn(F), Target(TM), UsedPhysRegs(0) { + : Annotation(MF_AID), Fn(F), Target(TM), UsedPhysRegs(0), DebugInfo() { SSARegMapping = new SSARegMap(); MFInfo = 0; FrameInfo = new MachineFrameInfo(); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp PPCInstrInfo.td
Changes in directory llvm/lib/Target/PowerPC: PPCAsmPrinter.cpp updated: 1.128 -> 1.129 PPCInstrInfo.td updated: 1.160 -> 1.161 --- Log message: Added source file/line correspondence for dwarf (PowerPC only at this point.) --- Diffs of the changes: (+17 -0) PPCAsmPrinter.cpp |8 PPCInstrInfo.td |9 + 2 files changed, 17 insertions(+) Index: llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp diff -u llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp:1.128 llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp:1.129 --- llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp:1.128 Fri Dec 16 15:46:14 2005 +++ llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp Fri Dec 16 16:45:29 2005 @@ -25,6 +25,7 @@ #include "llvm/Module.h" #include "llvm/Assembly/Writer.h" #include "llvm/CodeGen/AsmPrinter.h" +#include "llvm/CodeGen/MachineDebugInfo.h" #include "llvm/CodeGen/MachineFunctionPass.h" #include "llvm/CodeGen/MachineInstr.h" #include "llvm/Support/Mangler.h" @@ -375,6 +376,13 @@ bool DarwinAsmPrinter::runOnMachineFunction(MachineFunction &MF) { SetupMachineFunction(MF); O << "\n\n"; + + // Print out dwarf file info + MachineDebugInfo &DebugInfo = MF.getDebugInfo(); + std::vector Sources = DebugInfo.getSourceFiles(); + for (unsigned i = 0, N = Sources.size(); i < N; i++) { +O << "\t; .file\t" << (i + 1) << "," << "\"" << Sources[i] << "\"" << "\n"; + } // Print out constants referenced by the function EmitConstantPool(MF.getConstantPool()); Index: llvm/lib/Target/PowerPC/PPCInstrInfo.td diff -u llvm/lib/Target/PowerPC/PPCInstrInfo.td:1.160 llvm/lib/Target/PowerPC/PPCInstrInfo.td:1.161 --- llvm/lib/Target/PowerPC/PPCInstrInfo.td:1.160 Fri Dec 16 03:19:13 2005 +++ llvm/lib/Target/PowerPC/PPCInstrInfo.td Fri Dec 16 16:45:29 2005 @@ -922,6 +922,15 @@ //===--===// +// DWARF Pseudo Instructions +// + +def DWARF_LOC: Pseudo<(ops i32imm:$line, i32imm:$col, i32imm:$file), + "; .loc $file, $line, $col", + [(dwarf_loc (i32 imm:$line), (i32 imm:$col), + (i32 imm:$file))]>; + +//===--===// // PowerPC Instruction Patterns // ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/TargetSelectionDAG.td
Changes in directory llvm/lib/Target: TargetSelectionDAG.td updated: 1.26 -> 1.27 --- Log message: Added source file/line correspondence for dwarf (PowerPC only at this point.) --- Diffs of the changes: (+10 -0) TargetSelectionDAG.td | 10 ++ 1 files changed, 10 insertions(+) Index: llvm/lib/Target/TargetSelectionDAG.td diff -u llvm/lib/Target/TargetSelectionDAG.td:1.26 llvm/lib/Target/TargetSelectionDAG.td:1.27 --- llvm/lib/Target/TargetSelectionDAG.td:1.26 Thu Dec 15 13:49:22 2005 +++ llvm/lib/Target/TargetSelectionDAG.td Fri Dec 16 16:45:29 2005 @@ -415,3 +415,13 @@ string SelectFunc = fn; list RootNodes = roots; } + +//===--===// +// Dwarf support. +// +def SDT_dwarf_loc : SDTypeProfile<0, 3, +[SDTCisInt<0>, SDTCisInt<1>, SDTCisInt<2>]>; +def dwarf_loc : SDNode<"ISD::DEBUG_LOC", SDT_dwarf_loc,[SDNPHasChain]>; + + + ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/include/llvm/CodeGen/MachineDebugInfo.h MachineFunction.h SelectionDAGNodes.h
Changes in directory llvm/include/llvm/CodeGen: MachineDebugInfo.h added (r1.1) MachineFunction.h updated: 1.55 -> 1.56 SelectionDAGNodes.h updated: 1.81 -> 1.82 --- Log message: Added source file/line correspondence for dwarf (PowerPC only at this point.) --- Diffs of the changes: (+96 -0) MachineDebugInfo.h | 80 MachineFunction.h | 10 ++ SelectionDAGNodes.h |6 +++ 3 files changed, 96 insertions(+) Index: llvm/include/llvm/CodeGen/MachineDebugInfo.h diff -c /dev/null llvm/include/llvm/CodeGen/MachineDebugInfo.h:1.1 *** /dev/null Fri Dec 16 16:45:38 2005 --- llvm/include/llvm/CodeGen/MachineDebugInfo.hFri Dec 16 16:45:28 2005 *** *** 0 --- 1,80 + //===-- llvm/CodeGen/MachineDebugInfo.h -*- C++ -*-===// + // + // The LLVM Compiler Infrastructure + // + // This file was developed by James M. Laskey and is distributed under + // the University of Illinois Open Source License. See LICENSE.TXT for details. + // + //===--===// + // + // Collect debug information for a module. This information should be in a + // neutral form that can be used by different debugging schemes. + // + //===--===// + + #ifndef LLVM_CODEGEN_MACHINEDEBUGINFO_H + #define LLVM_CODEGEN_MACHINEDEBUGINFO_H + + #include + #include + #include + + namespace llvm { + //===--===// + /// MachineDebugInfo - This class contains debug information specific to a + /// module. Queries can be made by different debugging schemes and reformated + /// for specific use. + /// + class MachineDebugInfo { + private: + // convenience types + typedef std::map StrIntMap; + typedef StrIntMap::iterator StrIntMapIter; + + StrIntMap SourceMap; // Map of source file path to id + unsigned SourceCount; // Number of source files (used to + // generate id) + + public: + // Ctor. + MachineDebugInfo() : SourceMap(), SourceCount(0) {} + + /// RecordSource - Register a source file with debug info. Returns an id. + /// + unsigned RecordSource(std::string fname, std::string dirname) { + // Compose a key + std::string path = dirname + "/" + fname; + // Check if the source file is already recorded + StrIntMapIter SMI = SourceMap.find(path); + // If already there return existing id + if (SMI != SourceMap.end()) return SMI->second; + // Bump up the count + ++SourceCount; + // Record the count + SourceMap[path] = SourceCount; + // Return id + return SourceCount; + } + + /// getSourceFiles - Return a vector of files. Vector index + 1 equals id. + /// + std::vector getSourceFiles() { + std::vector Sources(SourceCount); + + for (StrIntMapIter SMI = SourceMap.begin(), E = SourceMap.end(); SMI != E; +SMI++) { + unsigned Index = SMI->second - 1; + std::string Path = SMI->first; + Sources[Index] = Path; + } + return Sources; + } + + }; // End class MachineDebugInfo + //===--===// + + + + } // End llvm namespace + + #endif Index: llvm/include/llvm/CodeGen/MachineFunction.h diff -u llvm/include/llvm/CodeGen/MachineFunction.h:1.55 llvm/include/llvm/CodeGen/MachineFunction.h:1.56 --- llvm/include/llvm/CodeGen/MachineFunction.h:1.55Wed Aug 31 17:49:51 2005 +++ llvm/include/llvm/CodeGen/MachineFunction.h Fri Dec 16 16:45:28 2005 @@ -18,6 +18,7 @@ #ifndef LLVM_CODEGEN_MACHINEFUNCTION_H #define LLVM_CODEGEN_MACHINEFUNCTION_H +#include "llvm/CodeGen/MachineDebugInfo.h" #include "llvm/CodeGen/MachineBasicBlock.h" #include "llvm/Support/Annotation.h" @@ -112,6 +113,10 @@ /// stored in the second element. std::vector > LiveIns; std::vector LiveOuts; + + /// DebugInfo - Keep track of debug information for the function. + /// + MachineDebugInfo DebugInfo; public: MachineFunction(const Function *Fn, const TargetMachine &TM); @@ -212,6 +217,11 @@ const MachineBasicBlock *getLastBlock() const { return MBBNumbering.back(); } + + /// getDebugInfo - Returns the DebugInfo. + MachineDebugInfo &getDebugInfo() { +return DebugInfo; + } /// print - Print out the MachineFunction in a format suitable for debugging /// to the specified stream. Index: llvm/include/llvm/CodeGen/SelectionDAGNodes.h diff -u llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1.81 llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1.82 --- llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1.81 Tue Dec 6 00:18:55 2005 +++ llvm/include/llvm/CodeGen/SelectionDAGNodes.h Fri Dec 16 16:45:28 2005 @@ -352,6 +352,12 @@ // a
[llvm-commits] CVS: llvm/win32/x86/x86.vcproj
Changes in directory llvm/win32/x86: x86.vcproj updated: 1.16 -> 1.17 --- Log message: Turn on string pooling for smaller binaries. --- Diffs of the changes: (+2 -0) x86.vcproj |2 ++ 1 files changed, 2 insertions(+) Index: llvm/win32/x86/x86.vcproj diff -u llvm/win32/x86/x86.vcproj:1.16 llvm/win32/x86/x86.vcproj:1.17 --- llvm/win32/x86/x86.vcproj:1.16 Wed Nov 16 00:10:53 2005 +++ llvm/win32/x86/x86.vcproj Fri Dec 16 18:14:47 2005 @@ -22,6 +22,7 @@ Optimization="0" AdditionalIncludeDirectories=".;..\..\include;.." PreprocessorDefinitions="WIN32;_DEBUG;_LIB;__STDC_LIMIT_MACROS" + StringPooling="TRUE" MinimalRebuild="TRUE" BasicRuntimeChecks="3" RuntimeLibrary="3" @@ -67,6 +68,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories=".;..\..\include;.." PreprocessorDefinitions="WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS" + StringPooling="TRUE" RuntimeLibrary="2" ForceConformanceInForLoopScope="TRUE" RuntimeTypeInfo="TRUE" ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/win32/Analysis/Analysis.vcproj
Changes in directory llvm/win32/Analysis: Analysis.vcproj updated: 1.15 -> 1.16 --- Log message: Turn on string pooling for smaller binaries. --- Diffs of the changes: (+2 -0) Analysis.vcproj |2 ++ 1 files changed, 2 insertions(+) Index: llvm/win32/Analysis/Analysis.vcproj diff -u llvm/win32/Analysis/Analysis.vcproj:1.15 llvm/win32/Analysis/Analysis.vcproj:1.16 --- llvm/win32/Analysis/Analysis.vcproj:1.15Sat Oct 29 11:51:48 2005 +++ llvm/win32/Analysis/Analysis.vcproj Fri Dec 16 18:14:46 2005 @@ -21,6 +21,7 @@ Optimization="0" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;_DEBUG;_LIB;__STDC_LIMIT_MACROS" + StringPooling="TRUE" MinimalRebuild="TRUE" BasicRuntimeChecks="3" RuntimeLibrary="3" @@ -66,6 +67,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS" + StringPooling="TRUE" RuntimeLibrary="2" ForceConformanceInForLoopScope="TRUE" RuntimeTypeInfo="TRUE" ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/win32/Support/Support.vcproj
Changes in directory llvm/win32/Support: Support.vcproj updated: 1.11 -> 1.12 --- Log message: Turn on string pooling for smaller binaries. --- Diffs of the changes: (+2 -0) Support.vcproj |2 ++ 1 files changed, 2 insertions(+) Index: llvm/win32/Support/Support.vcproj diff -u llvm/win32/Support/Support.vcproj:1.11 llvm/win32/Support/Support.vcproj:1.12 --- llvm/win32/Support/Support.vcproj:1.11 Sun Jan 30 11:54:11 2005 +++ llvm/win32/Support/Support.vcproj Fri Dec 16 18:14:47 2005 @@ -22,6 +22,7 @@ Optimization="0" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;_DEBUG;_LIB;__STDC_LIMIT_MACROS" + StringPooling="TRUE" MinimalRebuild="TRUE" BasicRuntimeChecks="3" RuntimeLibrary="3" @@ -67,6 +68,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS" + StringPooling="TRUE" RuntimeLibrary="2" ForceConformanceInForLoopScope="TRUE" RuntimeTypeInfo="TRUE" ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/win32/llvm-prof/llvm-prof.vcproj
Changes in directory llvm/win32/llvm-prof: llvm-prof.vcproj updated: 1.2 -> 1.3 --- Log message: Turn on string pooling for smaller binaries. --- Diffs of the changes: (+2 -0) llvm-prof.vcproj |2 ++ 1 files changed, 2 insertions(+) Index: llvm/win32/llvm-prof/llvm-prof.vcproj diff -u llvm/win32/llvm-prof/llvm-prof.vcproj:1.2 llvm/win32/llvm-prof/llvm-prof.vcproj:1.3 --- llvm/win32/llvm-prof/llvm-prof.vcproj:1.2 Sun Jan 30 11:54:12 2005 +++ llvm/win32/llvm-prof/llvm-prof.vcproj Fri Dec 16 18:14:47 2005 @@ -21,6 +21,7 @@ Optimization="0" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS" + StringPooling="TRUE" MinimalRebuild="TRUE" BasicRuntimeChecks="3" RuntimeLibrary="3" @@ -73,6 +74,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS" + StringPooling="TRUE" RuntimeLibrary="2" ForceConformanceInForLoopScope="TRUE" RuntimeTypeInfo="TRUE" ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/win32/llc/llc.vcproj
Changes in directory llvm/win32/llc: llc.vcproj updated: 1.7 -> 1.8 --- Log message: Turn on string pooling for smaller binaries. --- Diffs of the changes: (+2 -0) llc.vcproj |2 ++ 1 files changed, 2 insertions(+) Index: llvm/win32/llc/llc.vcproj diff -u llvm/win32/llc/llc.vcproj:1.7 llvm/win32/llc/llc.vcproj:1.8 --- llvm/win32/llc/llc.vcproj:1.7 Sun Jan 30 11:54:12 2005 +++ llvm/win32/llc/llc.vcproj Fri Dec 16 18:14:47 2005 @@ -21,6 +21,7 @@ Optimization="0" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS" + StringPooling="TRUE" MinimalRebuild="TRUE" BasicRuntimeChecks="3" RuntimeLibrary="3" @@ -74,6 +75,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS" + StringPooling="TRUE" RuntimeLibrary="2" ForceConformanceInForLoopScope="TRUE" RuntimeTypeInfo="TRUE" ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/win32/llvm-bcanalyzer/llvm-bcanalyzer.vcproj
Changes in directory llvm/win32/llvm-bcanalyzer: llvm-bcanalyzer.vcproj updated: 1.2 -> 1.3 --- Log message: Turn on string pooling for smaller binaries. --- Diffs of the changes: (+2 -0) llvm-bcanalyzer.vcproj |2 ++ 1 files changed, 2 insertions(+) Index: llvm/win32/llvm-bcanalyzer/llvm-bcanalyzer.vcproj diff -u llvm/win32/llvm-bcanalyzer/llvm-bcanalyzer.vcproj:1.2 llvm/win32/llvm-bcanalyzer/llvm-bcanalyzer.vcproj:1.3 --- llvm/win32/llvm-bcanalyzer/llvm-bcanalyzer.vcproj:1.2 Sun Jan 30 11:54:12 2005 +++ llvm/win32/llvm-bcanalyzer/llvm-bcanalyzer.vcproj Fri Dec 16 18:14:47 2005 @@ -21,6 +21,7 @@ Optimization="0" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS" + StringPooling="TRUE" MinimalRebuild="TRUE" BasicRuntimeChecks="3" RuntimeLibrary="3" @@ -73,6 +74,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS" + StringPooling="TRUE" RuntimeLibrary="2" ForceConformanceInForLoopScope="TRUE" RuntimeTypeInfo="TRUE" ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/win32/VMCore/VMCore.vcproj
Changes in directory llvm/win32/VMCore: VMCore.vcproj updated: 1.10 -> 1.11 --- Log message: Turn on string pooling for smaller binaries. --- Diffs of the changes: (+2 -0) VMCore.vcproj |2 ++ 1 files changed, 2 insertions(+) Index: llvm/win32/VMCore/VMCore.vcproj diff -u llvm/win32/VMCore/VMCore.vcproj:1.10 llvm/win32/VMCore/VMCore.vcproj:1.11 --- llvm/win32/VMCore/VMCore.vcproj:1.10Sun Jan 30 11:54:11 2005 +++ llvm/win32/VMCore/VMCore.vcproj Fri Dec 16 18:14:47 2005 @@ -21,6 +21,7 @@ Optimization="0" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;_DEBUG;_LIB;__STDC_LIMIT_MACROS;HASH_NAMESPACE="stdext"" + StringPooling="TRUE" MinimalRebuild="TRUE" BasicRuntimeChecks="3" RuntimeLibrary="3" @@ -66,6 +67,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS" + StringPooling="TRUE" RuntimeLibrary="2" ForceConformanceInForLoopScope="TRUE" RuntimeTypeInfo="TRUE" ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/win32/llvm-nm/llvm-nm.vcproj
Changes in directory llvm/win32/llvm-nm: llvm-nm.vcproj updated: 1.2 -> 1.3 --- Log message: Turn on string pooling for smaller binaries. --- Diffs of the changes: (+2 -0) llvm-nm.vcproj |2 ++ 1 files changed, 2 insertions(+) Index: llvm/win32/llvm-nm/llvm-nm.vcproj diff -u llvm/win32/llvm-nm/llvm-nm.vcproj:1.2 llvm/win32/llvm-nm/llvm-nm.vcproj:1.3 --- llvm/win32/llvm-nm/llvm-nm.vcproj:1.2 Sun Jan 30 11:54:12 2005 +++ llvm/win32/llvm-nm/llvm-nm.vcproj Fri Dec 16 18:14:47 2005 @@ -21,6 +21,7 @@ Optimization="0" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS" + StringPooling="TRUE" MinimalRebuild="TRUE" BasicRuntimeChecks="3" RuntimeLibrary="3" @@ -73,6 +74,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS" + StringPooling="TRUE" RuntimeLibrary="2" ForceConformanceInForLoopScope="TRUE" RuntimeTypeInfo="TRUE" ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/win32/opt/opt.vcproj
Changes in directory llvm/win32/opt: opt.vcproj updated: 1.2 -> 1.3 --- Log message: Turn on string pooling for smaller binaries. --- Diffs of the changes: (+2 -0) opt.vcproj |2 ++ 1 files changed, 2 insertions(+) Index: llvm/win32/opt/opt.vcproj diff -u llvm/win32/opt/opt.vcproj:1.2 llvm/win32/opt/opt.vcproj:1.3 --- llvm/win32/opt/opt.vcproj:1.2 Sun Jan 30 11:54:12 2005 +++ llvm/win32/opt/opt.vcproj Fri Dec 16 18:14:47 2005 @@ -21,6 +21,7 @@ Optimization="0" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS" + StringPooling="TRUE" MinimalRebuild="TRUE" BasicRuntimeChecks="3" RuntimeLibrary="3" @@ -73,6 +74,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS" + StringPooling="TRUE" RuntimeLibrary="2" ForceConformanceInForLoopScope="TRUE" RuntimeTypeInfo="TRUE" ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/win32/bugpoint/bugpoint.vcproj
Changes in directory llvm/win32/bugpoint: bugpoint.vcproj updated: 1.2 -> 1.3 --- Log message: Turn on string pooling for smaller binaries. --- Diffs of the changes: (+2 -0) bugpoint.vcproj |2 ++ 1 files changed, 2 insertions(+) Index: llvm/win32/bugpoint/bugpoint.vcproj diff -u llvm/win32/bugpoint/bugpoint.vcproj:1.2 llvm/win32/bugpoint/bugpoint.vcproj:1.3 --- llvm/win32/bugpoint/bugpoint.vcproj:1.2 Sun Jan 30 11:54:12 2005 +++ llvm/win32/bugpoint/bugpoint.vcproj Fri Dec 16 18:14:47 2005 @@ -21,6 +21,7 @@ Optimization="0" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS" + StringPooling="TRUE" MinimalRebuild="TRUE" BasicRuntimeChecks="3" RuntimeLibrary="3" @@ -73,6 +74,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS" + StringPooling="TRUE" RuntimeLibrary="2" ForceConformanceInForLoopScope="TRUE" RuntimeTypeInfo="TRUE" ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/win32/llvm-link/llvm-link.vcproj
Changes in directory llvm/win32/llvm-link: llvm-link.vcproj updated: 1.2 -> 1.3 --- Log message: Turn on string pooling for smaller binaries. --- Diffs of the changes: (+2 -0) llvm-link.vcproj |2 ++ 1 files changed, 2 insertions(+) Index: llvm/win32/llvm-link/llvm-link.vcproj diff -u llvm/win32/llvm-link/llvm-link.vcproj:1.2 llvm/win32/llvm-link/llvm-link.vcproj:1.3 --- llvm/win32/llvm-link/llvm-link.vcproj:1.2 Sun Jan 30 11:54:12 2005 +++ llvm/win32/llvm-link/llvm-link.vcproj Fri Dec 16 18:14:47 2005 @@ -21,6 +21,7 @@ Optimization="0" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS" + StringPooling="TRUE" MinimalRebuild="TRUE" BasicRuntimeChecks="3" RuntimeLibrary="3" @@ -73,6 +74,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS" + StringPooling="TRUE" RuntimeLibrary="2" ForceConformanceInForLoopScope="TRUE" RuntimeTypeInfo="TRUE" ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/win32/Target/Target.vcproj
Changes in directory llvm/win32/Target: Target.vcproj updated: 1.11 -> 1.12 --- Log message: Turn on string pooling for smaller binaries. --- Diffs of the changes: (+2 -0) Target.vcproj |2 ++ 1 files changed, 2 insertions(+) Index: llvm/win32/Target/Target.vcproj diff -u llvm/win32/Target/Target.vcproj:1.11 llvm/win32/Target/Target.vcproj:1.12 --- llvm/win32/Target/Target.vcproj:1.11Thu Oct 27 20:43:09 2005 +++ llvm/win32/Target/Target.vcproj Fri Dec 16 18:14:47 2005 @@ -21,6 +21,7 @@ Optimization="0" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;_DEBUG;_LIB;__STDC_LIMIT_MACROS" + StringPooling="TRUE" MinimalRebuild="TRUE" BasicRuntimeChecks="3" RuntimeLibrary="3" @@ -66,6 +67,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS" + StringPooling="TRUE" RuntimeLibrary="2" ForceConformanceInForLoopScope="TRUE" RuntimeTypeInfo="TRUE" ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/win32/llvm-ranlib/llvm-ranlib.vcproj
Changes in directory llvm/win32/llvm-ranlib: llvm-ranlib.vcproj updated: 1.2 -> 1.3 --- Log message: Turn on string pooling for smaller binaries. --- Diffs of the changes: (+2 -0) llvm-ranlib.vcproj |2 ++ 1 files changed, 2 insertions(+) Index: llvm/win32/llvm-ranlib/llvm-ranlib.vcproj diff -u llvm/win32/llvm-ranlib/llvm-ranlib.vcproj:1.2 llvm/win32/llvm-ranlib/llvm-ranlib.vcproj:1.3 --- llvm/win32/llvm-ranlib/llvm-ranlib.vcproj:1.2 Sun Jan 30 11:54:12 2005 +++ llvm/win32/llvm-ranlib/llvm-ranlib.vcproj Fri Dec 16 18:14:47 2005 @@ -21,6 +21,7 @@ Optimization="0" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS" + StringPooling="TRUE" MinimalRebuild="TRUE" BasicRuntimeChecks="3" RuntimeLibrary="3" @@ -73,6 +74,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS" + StringPooling="TRUE" RuntimeLibrary="2" ForceConformanceInForLoopScope="TRUE" RuntimeTypeInfo="TRUE" ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/win32/Fibonacci/Fibonacci.vcproj
Changes in directory llvm/win32/Fibonacci: Fibonacci.vcproj updated: 1.9 -> 1.10 --- Log message: Turn on string pooling for smaller binaries. --- Diffs of the changes: (+2 -0) Fibonacci.vcproj |2 ++ 1 files changed, 2 insertions(+) Index: llvm/win32/Fibonacci/Fibonacci.vcproj diff -u llvm/win32/Fibonacci/Fibonacci.vcproj:1.9 llvm/win32/Fibonacci/Fibonacci.vcproj:1.10 --- llvm/win32/Fibonacci/Fibonacci.vcproj:1.9 Sun Jan 30 11:54:11 2005 +++ llvm/win32/Fibonacci/Fibonacci.vcproj Fri Dec 16 18:14:47 2005 @@ -22,6 +22,7 @@ Optimization="0" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS" + StringPooling="TRUE" MinimalRebuild="TRUE" BasicRuntimeChecks="3" RuntimeLibrary="3" @@ -76,6 +77,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS" + StringPooling="TRUE" RuntimeLibrary="2" ForceConformanceInForLoopScope="TRUE" RuntimeTypeInfo="TRUE" ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/win32/CodeGen/CodeGen.vcproj
Changes in directory llvm/win32/CodeGen: CodeGen.vcproj updated: 1.15 -> 1.16 --- Log message: Turn on string pooling for smaller binaries. --- Diffs of the changes: (+2 -0) CodeGen.vcproj |2 ++ 1 files changed, 2 insertions(+) Index: llvm/win32/CodeGen/CodeGen.vcproj diff -u llvm/win32/CodeGen/CodeGen.vcproj:1.15 llvm/win32/CodeGen/CodeGen.vcproj:1.16 --- llvm/win32/CodeGen/CodeGen.vcproj:1.15 Mon Oct 24 10:21:58 2005 +++ llvm/win32/CodeGen/CodeGen.vcproj Fri Dec 16 18:14:46 2005 @@ -21,6 +21,7 @@ Optimization="0" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;_DEBUG;_LIB;__STDC_LIMIT_MACROS" + StringPooling="TRUE" MinimalRebuild="TRUE" BasicRuntimeChecks="3" RuntimeLibrary="3" @@ -66,6 +67,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS" + StringPooling="TRUE" RuntimeLibrary="2" ForceConformanceInForLoopScope="TRUE" RuntimeTypeInfo="TRUE" ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/win32/Transforms/Transforms.vcproj
Changes in directory llvm/win32/Transforms: Transforms.vcproj updated: 1.18 -> 1.19 --- Log message: Turn on string pooling for smaller binaries. --- Diffs of the changes: (+2 -0) Transforms.vcproj |2 ++ 1 files changed, 2 insertions(+) Index: llvm/win32/Transforms/Transforms.vcproj diff -u llvm/win32/Transforms/Transforms.vcproj:1.18 llvm/win32/Transforms/Transforms.vcproj:1.19 --- llvm/win32/Transforms/Transforms.vcproj:1.18Mon Nov 28 00:46:36 2005 +++ llvm/win32/Transforms/Transforms.vcproj Fri Dec 16 18:14:47 2005 @@ -21,6 +21,7 @@ Optimization="0" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;_DEBUG;_LIB;__STDC_LIMIT_MACROS;HASH_NAMESPACE="stdext"" + StringPooling="TRUE" MinimalRebuild="TRUE" BasicRuntimeChecks="3" RuntimeLibrary="3" @@ -66,6 +67,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS" + StringPooling="TRUE" RuntimeLibrary="2" ForceConformanceInForLoopScope="TRUE" RuntimeTypeInfo="TRUE" ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/win32/AsmParser/AsmParser.vcproj
Changes in directory llvm/win32/AsmParser: AsmParser.vcproj updated: 1.7 -> 1.8 --- Log message: Turn on string pooling for smaller binaries. --- Diffs of the changes: (+2 -0) AsmParser.vcproj |2 ++ 1 files changed, 2 insertions(+) Index: llvm/win32/AsmParser/AsmParser.vcproj diff -u llvm/win32/AsmParser/AsmParser.vcproj:1.7 llvm/win32/AsmParser/AsmParser.vcproj:1.8 --- llvm/win32/AsmParser/AsmParser.vcproj:1.7 Wed Oct 26 20:10:37 2005 +++ llvm/win32/AsmParser/AsmParser.vcproj Fri Dec 16 18:14:46 2005 @@ -22,6 +22,7 @@ Optimization="0" AdditionalIncludeDirectories="..\..\include;..;..\..\lib\AsmParser" PreprocessorDefinitions="WIN32;_DEBUG;_LIB;__STDC_LIMIT_MACROS" + StringPooling="TRUE" MinimalRebuild="TRUE" BasicRuntimeChecks="3" RuntimeLibrary="3" @@ -67,6 +68,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories="..\..\include;..;..\..\lib\AsmParser" PreprocessorDefinitions="WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS" + StringPooling="TRUE" RuntimeLibrary="2" ForceConformanceInForLoopScope="TRUE" RuntimeTypeInfo="TRUE" ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/win32/llvm-ar/llvm-ar.vcproj
Changes in directory llvm/win32/llvm-ar: llvm-ar.vcproj updated: 1.2 -> 1.3 --- Log message: Turn on string pooling for smaller binaries. --- Diffs of the changes: (+2 -0) llvm-ar.vcproj |2 ++ 1 files changed, 2 insertions(+) Index: llvm/win32/llvm-ar/llvm-ar.vcproj diff -u llvm/win32/llvm-ar/llvm-ar.vcproj:1.2 llvm/win32/llvm-ar/llvm-ar.vcproj:1.3 --- llvm/win32/llvm-ar/llvm-ar.vcproj:1.2 Sun Jan 30 11:54:12 2005 +++ llvm/win32/llvm-ar/llvm-ar.vcproj Fri Dec 16 18:14:47 2005 @@ -21,6 +21,7 @@ Optimization="0" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS" + StringPooling="TRUE" MinimalRebuild="TRUE" BasicRuntimeChecks="3" RuntimeLibrary="3" @@ -73,6 +74,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS" + StringPooling="TRUE" RuntimeLibrary="2" ForceConformanceInForLoopScope="TRUE" RuntimeTypeInfo="TRUE" ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/win32/llvm-ld/llvm-ld.vcproj
Changes in directory llvm/win32/llvm-ld: llvm-ld.vcproj updated: 1.2 -> 1.3 --- Log message: Turn on string pooling for smaller binaries. --- Diffs of the changes: (+2 -0) llvm-ld.vcproj |2 ++ 1 files changed, 2 insertions(+) Index: llvm/win32/llvm-ld/llvm-ld.vcproj diff -u llvm/win32/llvm-ld/llvm-ld.vcproj:1.2 llvm/win32/llvm-ld/llvm-ld.vcproj:1.3 --- llvm/win32/llvm-ld/llvm-ld.vcproj:1.2 Sun Jan 30 11:54:12 2005 +++ llvm/win32/llvm-ld/llvm-ld.vcproj Fri Dec 16 18:14:47 2005 @@ -21,6 +21,7 @@ Optimization="0" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS" + StringPooling="TRUE" MinimalRebuild="TRUE" BasicRuntimeChecks="3" RuntimeLibrary="3" @@ -73,6 +74,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS" + StringPooling="TRUE" RuntimeLibrary="2" ForceConformanceInForLoopScope="TRUE" RuntimeTypeInfo="TRUE" ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/win32/System/System.vcproj
Changes in directory llvm/win32/System: System.vcproj updated: 1.15 -> 1.16 --- Log message: Turn on string pooling for smaller binaries. --- Diffs of the changes: (+2 -0) System.vcproj |2 ++ 1 files changed, 2 insertions(+) Index: llvm/win32/System/System.vcproj diff -u llvm/win32/System/System.vcproj:1.15 llvm/win32/System/System.vcproj:1.16 --- llvm/win32/System/System.vcproj:1.15Tue Jul 12 21:15:18 2005 +++ llvm/win32/System/System.vcproj Fri Dec 16 18:14:47 2005 @@ -22,6 +22,7 @@ Optimization="0" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;_DEBUG;_LIB;__STDC_LIMIT_MACROS" + StringPooling="TRUE" MinimalRebuild="TRUE" BasicRuntimeChecks="3" RuntimeLibrary="3" @@ -67,6 +68,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS" + StringPooling="TRUE" RuntimeLibrary="2" ForceConformanceInForLoopScope="TRUE" RuntimeTypeInfo="TRUE" ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/win32/llvm-as/llvm-as.vcproj
Changes in directory llvm/win32/llvm-as: llvm-as.vcproj updated: 1.2 -> 1.3 --- Log message: Turn on string pooling for smaller binaries. --- Diffs of the changes: (+2 -0) llvm-as.vcproj |2 ++ 1 files changed, 2 insertions(+) Index: llvm/win32/llvm-as/llvm-as.vcproj diff -u llvm/win32/llvm-as/llvm-as.vcproj:1.2 llvm/win32/llvm-as/llvm-as.vcproj:1.3 --- llvm/win32/llvm-as/llvm-as.vcproj:1.2 Sun Jan 30 11:54:12 2005 +++ llvm/win32/llvm-as/llvm-as.vcproj Fri Dec 16 18:14:47 2005 @@ -21,6 +21,7 @@ Optimization="0" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS" + StringPooling="TRUE" MinimalRebuild="TRUE" BasicRuntimeChecks="3" RuntimeLibrary="3" @@ -73,6 +74,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS" + StringPooling="TRUE" RuntimeLibrary="2" ForceConformanceInForLoopScope="TRUE" RuntimeTypeInfo="TRUE" ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/win32/CBackend/CBackend.vcproj
Changes in directory llvm/win32/CBackend: CBackend.vcproj updated: 1.3 -> 1.4 --- Log message: Turn on string pooling for smaller binaries. --- Diffs of the changes: (+2 -0) CBackend.vcproj |2 ++ 1 files changed, 2 insertions(+) Index: llvm/win32/CBackend/CBackend.vcproj diff -u llvm/win32/CBackend/CBackend.vcproj:1.3 llvm/win32/CBackend/CBackend.vcproj:1.4 --- llvm/win32/CBackend/CBackend.vcproj:1.3 Wed Feb 2 00:33:11 2005 +++ llvm/win32/CBackend/CBackend.vcproj Fri Dec 16 18:14:46 2005 @@ -21,6 +21,7 @@ Optimization="0" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;_DEBUG;_LIB;__STDC_LIMIT_MACROS" + StringPooling="TRUE" MinimalRebuild="TRUE" BasicRuntimeChecks="3" RuntimeLibrary="3" @@ -66,6 +67,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS" + StringPooling="TRUE" RuntimeLibrary="2" ForceConformanceInForLoopScope="TRUE" RuntimeTypeInfo="TRUE" ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/win32/TableGen/TableGen.vcproj
Changes in directory llvm/win32/TableGen: TableGen.vcproj updated: 1.18 -> 1.19 --- Log message: Turn on string pooling for smaller binaries. --- Diffs of the changes: (+2 -0) TableGen.vcproj |2 ++ 1 files changed, 2 insertions(+) Index: llvm/win32/TableGen/TableGen.vcproj diff -u llvm/win32/TableGen/TableGen.vcproj:1.18 llvm/win32/TableGen/TableGen.vcproj:1.19 --- llvm/win32/TableGen/TableGen.vcproj:1.18Wed Oct 26 20:10:37 2005 +++ llvm/win32/TableGen/TableGen.vcproj Fri Dec 16 18:14:47 2005 @@ -21,6 +21,7 @@ Optimization="0" AdditionalIncludeDirectories="..\..\include;..;..\..\utils\tablegen" PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS" + StringPooling="TRUE" MinimalRebuild="TRUE" BasicRuntimeChecks="3" RuntimeLibrary="3" @@ -74,6 +75,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories="..\..\include;..;..\..\utils\tablegen" PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS" + StringPooling="TRUE" RuntimeLibrary="2" ForceConformanceInForLoopScope="TRUE" RuntimeTypeInfo="TRUE" ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/win32/llvm-dis/llvm-dis.vcproj
Changes in directory llvm/win32/llvm-dis: llvm-dis.vcproj updated: 1.3 -> 1.4 --- Log message: Turn on string pooling for smaller binaries. --- Diffs of the changes: (+2 -0) llvm-dis.vcproj |2 ++ 1 files changed, 2 insertions(+) Index: llvm/win32/llvm-dis/llvm-dis.vcproj diff -u llvm/win32/llvm-dis/llvm-dis.vcproj:1.3 llvm/win32/llvm-dis/llvm-dis.vcproj:1.4 --- llvm/win32/llvm-dis/llvm-dis.vcproj:1.3 Sun Jan 30 11:54:12 2005 +++ llvm/win32/llvm-dis/llvm-dis.vcproj Fri Dec 16 18:14:47 2005 @@ -21,6 +21,7 @@ Optimization="0" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS" + StringPooling="TRUE" MinimalRebuild="TRUE" BasicRuntimeChecks="3" RuntimeLibrary="3" @@ -73,6 +74,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS" + StringPooling="TRUE" RuntimeLibrary="2" ForceConformanceInForLoopScope="TRUE" RuntimeTypeInfo="TRUE" ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/win32/ExecutionEngine/ExecutionEngine.vcproj
Changes in directory llvm/win32/ExecutionEngine: ExecutionEngine.vcproj updated: 1.7 -> 1.8 --- Log message: Turn on string pooling for smaller binaries. --- Diffs of the changes: (+2 -0) ExecutionEngine.vcproj |2 ++ 1 files changed, 2 insertions(+) Index: llvm/win32/ExecutionEngine/ExecutionEngine.vcproj diff -u llvm/win32/ExecutionEngine/ExecutionEngine.vcproj:1.7 llvm/win32/ExecutionEngine/ExecutionEngine.vcproj:1.8 --- llvm/win32/ExecutionEngine/ExecutionEngine.vcproj:1.7 Sun Jan 30 11:54:11 2005 +++ llvm/win32/ExecutionEngine/ExecutionEngine.vcproj Fri Dec 16 18:14:46 2005 @@ -21,6 +21,7 @@ Optimization="0" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;_DEBUG;_LIB;__STDC_LIMIT_MACROS" + StringPooling="TRUE" MinimalRebuild="TRUE" BasicRuntimeChecks="3" RuntimeLibrary="3" @@ -66,6 +67,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS" + StringPooling="TRUE" RuntimeLibrary="2" ForceConformanceInForLoopScope="TRUE" RuntimeTypeInfo="TRUE" ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/win32/Bytecode/Bytecode.vcproj
Changes in directory llvm/win32/Bytecode: Bytecode.vcproj updated: 1.4 -> 1.5 --- Log message: Turn on string pooling for smaller binaries. --- Diffs of the changes: (+2 -0) Bytecode.vcproj |2 ++ 1 files changed, 2 insertions(+) Index: llvm/win32/Bytecode/Bytecode.vcproj diff -u llvm/win32/Bytecode/Bytecode.vcproj:1.4 llvm/win32/Bytecode/Bytecode.vcproj:1.5 --- llvm/win32/Bytecode/Bytecode.vcproj:1.4 Wed Feb 2 00:33:11 2005 +++ llvm/win32/Bytecode/Bytecode.vcproj Fri Dec 16 18:14:46 2005 @@ -21,6 +21,7 @@ Optimization="0" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;_DEBUG;_LIB;__STDC_LIMIT_MACROS" + StringPooling="TRUE" MinimalRebuild="TRUE" BasicRuntimeChecks="3" RuntimeLibrary="3" @@ -66,6 +67,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS" + StringPooling="TRUE" RuntimeLibrary="2" ForceConformanceInForLoopScope="TRUE" RuntimeTypeInfo="TRUE" ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/include/llvm/Value.h
Changes in directory llvm/include/llvm: Value.h updated: 1.79 -> 1.80 --- Log message: Fix VC++ level 4 warnings. --- Diffs of the changes: (+2 -2) Value.h |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Index: llvm/include/llvm/Value.h diff -u llvm/include/llvm/Value.h:1.79 llvm/include/llvm/Value.h:1.80 --- llvm/include/llvm/Value.h:1.79 Fri Oct 7 20:24:19 2005 +++ llvm/include/llvm/Value.h Fri Dec 16 18:18:06 2005 @@ -165,7 +165,7 @@ } // Methods for support type inquiry through isa, cast, and dyn_cast: - static inline bool classof(const Value *V) { + static inline bool classof(const Value * /*V*/) { return true; // Values are always values. } @@ -175,7 +175,7 @@ private: /// FIXME: this is a gross hack, needed by another gross hack. Eliminate! - void setValueType(unsigned VT) { SubclassID = VT; } + void setValueType(unsigned short VT) { SubclassID = VT; } friend class Instruction; }; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/win32/analyze/analyze.vcproj
Changes in directory llvm/win32/analyze: analyze.vcproj updated: 1.5 -> 1.6 --- Log message: Turn on string pooling for smaller binaries. --- Diffs of the changes: (+2 -0) analyze.vcproj |2 ++ 1 files changed, 2 insertions(+) Index: llvm/win32/analyze/analyze.vcproj diff -u llvm/win32/analyze/analyze.vcproj:1.5 llvm/win32/analyze/analyze.vcproj:1.6 --- llvm/win32/analyze/analyze.vcproj:1.5 Sun Oct 23 21:57:24 2005 +++ llvm/win32/analyze/analyze.vcproj Fri Dec 16 18:14:47 2005 @@ -21,6 +21,7 @@ Optimization="0" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS" + StringPooling="TRUE" MinimalRebuild="TRUE" BasicRuntimeChecks="3" RuntimeLibrary="3" @@ -73,6 +74,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS" + StringPooling="TRUE" RuntimeLibrary="2" ForceConformanceInForLoopScope="TRUE" RuntimeTypeInfo="TRUE" ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/include/llvm/Constant.h GlobalVariable.h Instruction.h
Changes in directory llvm/include/llvm: Constant.h updated: 1.26 -> 1.27 GlobalVariable.h updated: 1.35 -> 1.36 Instruction.h updated: 1.69 -> 1.70 --- Log message: Fix VC++ level 4 warnings. Because a base class has declared these private, VC++ complains it cannot automatically generate this methods. --- Diffs of the changes: (+8 -0) Constant.h |2 ++ GlobalVariable.h |3 +++ Instruction.h|3 +++ 3 files changed, 8 insertions(+) Index: llvm/include/llvm/Constant.h diff -u llvm/include/llvm/Constant.h:1.26 llvm/include/llvm/Constant.h:1.27 --- llvm/include/llvm/Constant.h:1.26 Tue Oct 25 12:59:28 2005 +++ llvm/include/llvm/Constant.hFri Dec 16 18:19:22 2005 @@ -19,6 +19,8 @@ namespace llvm { class Constant : public User { + void operator=(const Constant &); // Do not implement + Constant(const Constant &); // Do not implement protected: Constant(const Type *Ty, ValueTy vty, Use *Ops, unsigned NumOps, const std::string& Name = "") Index: llvm/include/llvm/GlobalVariable.h diff -u llvm/include/llvm/GlobalVariable.h:1.35 llvm/include/llvm/GlobalVariable.h:1.36 --- llvm/include/llvm/GlobalVariable.h:1.35 Tue Oct 4 13:12:13 2005 +++ llvm/include/llvm/GlobalVariable.h Fri Dec 16 18:19:22 2005 @@ -34,6 +34,9 @@ class GlobalVariable : public GlobalValue { friend class SymbolTableListTraits >; + void operator=(const GlobalVariable &); // Do not implement + GlobalVariable(const GlobalVariable &); // Do not implement + void setParent(Module *parent); GlobalVariable *Prev, *Next; Index: llvm/include/llvm/Instruction.h diff -u llvm/include/llvm/Instruction.h:1.69 llvm/include/llvm/Instruction.h:1.70 --- llvm/include/llvm/Instruction.h:1.69Tue Oct 25 12:59:28 2005 +++ llvm/include/llvm/Instruction.h Fri Dec 16 18:19:22 2005 @@ -27,6 +27,9 @@ typename SubClass> class SymbolTableListTraits; class Instruction : public User { + void operator=(const Instruction &); // Do not implement + Instruction(const Instruction &);// Do not implement + BasicBlock *Parent; Instruction *Prev, *Next; // Next and Prev links for our intrusive linked list ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/win32/lli/lli.vcproj
Changes in directory llvm/win32/lli: lli.vcproj updated: 1.6 -> 1.7 --- Log message: Turn on string pooling for smaller binaries. --- Diffs of the changes: (+2 -0) lli.vcproj |2 ++ 1 files changed, 2 insertions(+) Index: llvm/win32/lli/lli.vcproj diff -u llvm/win32/lli/lli.vcproj:1.6 llvm/win32/lli/lli.vcproj:1.7 --- llvm/win32/lli/lli.vcproj:1.6 Sun Jan 30 11:54:12 2005 +++ llvm/win32/lli/lli.vcproj Fri Dec 16 18:14:47 2005 @@ -21,6 +21,7 @@ Optimization="0" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;__STDC_LIMIT_MACROS" + StringPooling="TRUE" MinimalRebuild="TRUE" BasicRuntimeChecks="3" RuntimeLibrary="3" @@ -74,6 +75,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;__STDC_LIMIT_MACROS" + StringPooling="TRUE" RuntimeLibrary="2" ForceConformanceInForLoopScope="TRUE" RuntimeTypeInfo="TRUE" ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/win32/Linker/Linker.vcproj
Changes in directory llvm/win32/Linker: Linker.vcproj updated: 1.4 -> 1.5 --- Log message: Turn on string pooling for smaller binaries. --- Diffs of the changes: (+2 -0) Linker.vcproj |2 ++ 1 files changed, 2 insertions(+) Index: llvm/win32/Linker/Linker.vcproj diff -u llvm/win32/Linker/Linker.vcproj:1.4 llvm/win32/Linker/Linker.vcproj:1.5 --- llvm/win32/Linker/Linker.vcproj:1.4 Tue Mar 15 23:09:59 2005 +++ llvm/win32/Linker/Linker.vcproj Fri Dec 16 18:14:47 2005 @@ -21,6 +21,7 @@ Optimization="0" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;_DEBUG;_LIB;__STDC_LIMIT_MACROS" + StringPooling="TRUE" MinimalRebuild="TRUE" BasicRuntimeChecks="3" RuntimeLibrary="3" @@ -66,6 +67,7 @@ Name="VCCLCompilerTool" AdditionalIncludeDirectories="..\..\include;.." PreprocessorDefinitions="WIN32;NDEBUG;_LIB;__STDC_LIMIT_MACROS" + StringPooling="TRUE" RuntimeLibrary="2" ForceConformanceInForLoopScope="TRUE" RuntimeTypeInfo="TRUE" ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/X86/X86ATTAsmPrinter.h X86IntelAsmPrinter.h
Changes in directory llvm/lib/Target/X86: X86ATTAsmPrinter.h updated: 1.3 -> 1.4 X86IntelAsmPrinter.h updated: 1.4 -> 1.5 --- Log message: Remove hidden DOS characters. --- Diffs of the changes: (+171 -171) X86ATTAsmPrinter.h | 152 X86IntelAsmPrinter.h | 190 +-- 2 files changed, 171 insertions(+), 171 deletions(-) Index: llvm/lib/Target/X86/X86ATTAsmPrinter.h diff -u llvm/lib/Target/X86/X86ATTAsmPrinter.h:1.3 llvm/lib/Target/X86/X86ATTAsmPrinter.h:1.4 --- llvm/lib/Target/X86/X86ATTAsmPrinter.h:1.3 Wed Nov 30 12:54:35 2005 +++ llvm/lib/Target/X86/X86ATTAsmPrinter.h Fri Dec 16 19:03:57 2005 @@ -1,76 +1,76 @@ -//===-- X86ATTAsmPrinter.h - Convert X86 LLVM code to Intel assembly --===// -// -// The LLVM Compiler Infrastructure -// -// This file was developed by the LLVM research group and is distributed under -// the University of Illinois Open Source License. See LICENSE.TXT for details. -// -//===--===// -// -// AT&T assembly code printer class. -// -//===--===// - -#ifndef X86ATTASMPRINTER_H -#define X86ATTASMPRINTER_H - -#include "X86AsmPrinter.h" -#include "llvm/CodeGen/ValueTypes.h" - -namespace llvm { -namespace x86 { - -struct X86ATTAsmPrinter : public X86SharedAsmPrinter { - X86ATTAsmPrinter(std::ostream &O, TargetMachine &TM) -: X86SharedAsmPrinter(O, TM) { } - - virtual const char *getPassName() const { -return "X86 AT&T-Style Assembly Printer"; - } - - /// printInstruction - This method is automatically generated by tablegen - /// from the instruction set description. This method returns true if the - /// machine instruction was sufficiently described to print it, otherwise it - /// returns false. - bool printInstruction(const MachineInstr *MI); - - // This method is used by the tablegen'erated instruction printer. - void printOperand(const MachineInstr *MI, unsigned OpNo){ -printOp(MI->getOperand(OpNo)); - } - void printCallOperand(const MachineInstr *MI, unsigned OpNo) { -printOp(MI->getOperand(OpNo), true); // Don't print '$' prefix. - } - void printi8mem(const MachineInstr *MI, unsigned OpNo) { -printMemReference(MI, OpNo); - } - void printi16mem(const MachineInstr *MI, unsigned OpNo) { -printMemReference(MI, OpNo); - } - void printi32mem(const MachineInstr *MI, unsigned OpNo) { -printMemReference(MI, OpNo); - } - void printi64mem(const MachineInstr *MI, unsigned OpNo) { -printMemReference(MI, OpNo); - } - void printf32mem(const MachineInstr *MI, unsigned OpNo) { -printMemReference(MI, OpNo); - } - void printf64mem(const MachineInstr *MI, unsigned OpNo) { -printMemReference(MI, OpNo); - } - void printf80mem(const MachineInstr *MI, unsigned OpNo) { -printMemReference(MI, OpNo); - } - - void printMachineInstruction(const MachineInstr *MI); - void printOp(const MachineOperand &MO, bool isCallOperand = false); - void printSSECC(const MachineInstr *MI, unsigned Op); - void printMemReference(const MachineInstr *MI, unsigned Op); - bool runOnMachineFunction(MachineFunction &F); -}; - -} // end namespace x86 -} // end namespace llvm - -#endif +//===-- X86ATTAsmPrinter.h - Convert X86 LLVM code to Intel assembly --===// +// +// The LLVM Compiler Infrastructure +// +// This file was developed by the LLVM research group and is distributed under +// the University of Illinois Open Source License. See LICENSE.TXT for details. +// +//===--===// +// +// AT&T assembly code printer class. +// +//===--===// + +#ifndef X86ATTASMPRINTER_H +#define X86ATTASMPRINTER_H + +#include "X86AsmPrinter.h" +#include "llvm/CodeGen/ValueTypes.h" + +namespace llvm { +namespace x86 { + +struct X86ATTAsmPrinter : public X86SharedAsmPrinter { + X86ATTAsmPrinter(std::ostream &O, TargetMachine &TM) +: X86SharedAsmPrinter(O, TM) { } + + virtual const char *getPassName() const { +return "X86 AT&T-Style Assembly Printer"; + } + + /// printInstruction - This method is automatically generated by tablegen + /// from the instruction set description. This method returns true if the + /// machine instruction was sufficiently described to print it, otherwise it + /// returns false. + bool printInstruction(const MachineInstr *MI); + + // This method is used by the tablegen'erated instruction printer. + void printOperand(const MachineInstr *MI, unsigned OpNo){ +printOp(MI->getOperand(OpNo)); + } + void printCallOperand(const MachineInstr *MI, unsigned OpNo) { +printOp(MI->getOperand(OpNo), true); // Don't print '$' prefix. + } + void printi8mem(const MachineInstr *MI, unsigned OpNo) { +printMemReference(MI
[llvm-commits] CVS: llvm/utils/TableGen/CodeGenTarget.cpp DAGISelEmitter.cpp DAGISelEmitter.h
Changes in directory llvm/utils/TableGen: CodeGenTarget.cpp updated: 1.49 -> 1.50 DAGISelEmitter.cpp updated: 1.99 -> 1.100 DAGISelEmitter.h updated: 1.45 -> 1.46 --- Log message: Support for read / write from explicit registers with FlagVT type. --- Diffs of the changes: (+112 -42) CodeGenTarget.cpp |2 DAGISelEmitter.cpp | 129 - DAGISelEmitter.h | 23 - 3 files changed, 112 insertions(+), 42 deletions(-) Index: llvm/utils/TableGen/CodeGenTarget.cpp diff -u llvm/utils/TableGen/CodeGenTarget.cpp:1.49 llvm/utils/TableGen/CodeGenTarget.cpp:1.50 --- llvm/utils/TableGen/CodeGenTarget.cpp:1.49 Wed Dec 7 20:14:08 2005 +++ llvm/utils/TableGen/CodeGenTarget.cpp Fri Dec 16 19:19:28 2005 @@ -45,6 +45,7 @@ case MVT::f64: return "f64"; case MVT::f80: return "f80"; case MVT::f128: return "f128"; + case MVT::Flag: return "Flag"; case MVT::isVoid:return "void"; case MVT::v16i8: return "v16i8"; case MVT::v8i16: return "v8i16"; @@ -69,6 +70,7 @@ case MVT::f64: return "f64"; case MVT::f80: return "f80"; case MVT::f128: return "f128"; + case MVT::Flag: return "Flag"; case MVT::isVoid:return "isVoid"; case MVT::v16i8: return "v16i8"; case MVT::v8i16: return "v8i16"; Index: llvm/utils/TableGen/DAGISelEmitter.cpp diff -u llvm/utils/TableGen/DAGISelEmitter.cpp:1.99 llvm/utils/TableGen/DAGISelEmitter.cpp:1.100 --- llvm/utils/TableGen/DAGISelEmitter.cpp:1.99 Wed Dec 14 16:02:59 2005 +++ llvm/utils/TableGen/DAGISelEmitter.cpp Fri Dec 16 19:19:28 2005 @@ -296,6 +296,7 @@ if (isLeaf()) { dump(); +std::cerr << " "; TP.error("Type inference contradiction found in node!"); } else { TP.error("Type inference contradiction found in node " + @@ -951,14 +952,17 @@ /// HandleUse - Given "Pat" a leaf in the pattern, check to see if it is an /// instruction input. Return true if this is a real use. static bool HandleUse(TreePattern *I, TreePatternNode *Pat, - std::map &InstInputs) { + std::map &InstInputs, + std::vector &InstImpInputs) { // No name -> not interesting. if (Pat->getName().empty()) { if (Pat->isLeaf()) { DefInit *DI = dynamic_cast(Pat->getLeafValue()); if (DI && DI->getDef()->isSubClassOf("RegisterClass")) I->error("Input " + DI->getDef()->getName() + " must be named!"); - + else if (DI && DI->getDef()->isSubClassOf("Register")) { +InstImpInputs.push_back(DI->getDef()); + } } return false; } @@ -1004,9 +1008,11 @@ void DAGISelEmitter:: FindPatternInputsAndOutputs(TreePattern *I, TreePatternNode *Pat, std::map &InstInputs, -std::map &InstResults) { +std::map &InstResults, +std::vector &InstImpInputs, +std::vector &InstImpResults) { if (Pat->isLeaf()) { -bool isUse = HandleUse(I, Pat, InstInputs); +bool isUse = HandleUse(I, Pat, InstInputs, InstImpInputs); if (!isUse && Pat->getTransformFn()) I->error("Cannot specify a transform function for a non-input value!"); return; @@ -1016,14 +1022,15 @@ for (unsigned i = 0, e = Pat->getNumChildren(); i != e; ++i) { if (Pat->getChild(i)->getExtType() == MVT::isVoid) I->error("Cannot have void nodes inside of patterns!"); - FindPatternInputsAndOutputs(I, Pat->getChild(i), InstInputs, InstResults); + FindPatternInputsAndOutputs(I, Pat->getChild(i), InstInputs, InstResults, + InstImpInputs, InstImpResults); } // If this is a non-leaf node with no children, treat it basically as if // it were a leaf. This handles nodes like (imm). bool isUse = false; if (Pat->getNumChildren() == 0) - isUse = HandleUse(I, Pat, InstInputs); + isUse = HandleUse(I, Pat, InstInputs, InstImpInputs); if (!isUse && Pat->getTransformFn()) I->error("Cannot specify a transform function for a non-input value!"); @@ -1049,19 +1056,22 @@ DefInit *Val = dynamic_cast(Dest->getLeafValue()); if (!Val) I->error("set destination should be a register!"); - -if (!Val->getDef()->isSubClassOf("RegisterClass") && -!Val->getDef()->isSubClassOf("Register")) - I->error("set destination should be a register!"); -if (Dest->getName().empty()) - I->error("set destination must have a name!"); -if (InstResults.count(Dest->getName())) - I->error("cannot set '" + Dest->getName() +"' multiple times"); -InstResults[Dest->getName()] = Val->getDef(); +if (Val->getDef()->isSubClassOf("RegisterClass")) { + if (Dest->getName().empty()) +I->error("set destination must have a name!"); + if (InstResults.count(Dest->getName())) +I->error("cannot set '" + Dest->getName() +"'
[llvm-commits] CVS: llvm/lib/Target/X86/X86TargetMachine.cpp X86.h
Changes in directory llvm/lib/Target/X86: X86TargetMachine.cpp updated: 1.90 -> 1.91 X86.h updated: 1.38 -> 1.39 --- Log message: Only lower SELECT when using DAG based isel. --- Diffs of the changes: (+8 -4) X86.h|1 + X86TargetMachine.cpp | 11 +++ 2 files changed, 8 insertions(+), 4 deletions(-) Index: llvm/lib/Target/X86/X86TargetMachine.cpp diff -u llvm/lib/Target/X86/X86TargetMachine.cpp:1.90 llvm/lib/Target/X86/X86TargetMachine.cpp:1.91 --- llvm/lib/Target/X86/X86TargetMachine.cpp:1.90 Mon Dec 12 14:12:20 2005 +++ llvm/lib/Target/X86/X86TargetMachine.cppFri Dec 16 19:22:13 2005 @@ -27,6 +27,7 @@ X86VectorEnum llvm::X86Vector = NoSSE; bool llvm::X86ScalarSSE = false; +bool llvm::X86DAGIsel = false; /// X86TargetMachineModule - Note that this is used on hosts that cannot link /// in a library unless there are references into the library. In particular, @@ -44,8 +45,10 @@ cl::location(X86ScalarSSE), cl::init(false)); - cl::opt EnableX86DAGDAG("enable-x86-dag-isel", cl::Hidden, - cl::desc("Enable DAG-to-DAG isel for X86")); + cl::opt EnableX86DAGDAG("enable-x86-dag-isel", cl::Hidden, + cl::desc("Enable DAG-to-DAG isel for X86"), + cl::location(X86DAGIsel), + cl::init(false)); // FIXME: This should eventually be handled with target triples and // subtarget support! @@ -124,7 +127,7 @@ PM.add(createUnreachableBlockEliminationPass()); // Install an instruction selector. - if (EnableX86DAGDAG) + if (X86DAGIsel) PM.add(createX86ISelDag(*this)); else PM.add(createX86ISelPattern(*this)); @@ -191,7 +194,7 @@ PM.add(createUnreachableBlockEliminationPass()); // Install an instruction selector. - if (EnableX86DAGDAG) + if (X86DAGIsel) PM.add(createX86ISelDag(TM)); else PM.add(createX86ISelPattern(TM)); Index: llvm/lib/Target/X86/X86.h diff -u llvm/lib/Target/X86/X86.h:1.38 llvm/lib/Target/X86/X86.h:1.39 --- llvm/lib/Target/X86/X86.h:1.38 Mon Dec 12 14:12:20 2005 +++ llvm/lib/Target/X86/X86.h Fri Dec 16 19:22:13 2005 @@ -31,6 +31,7 @@ extern X86VectorEnum X86Vector; extern bool X86ScalarSSE; +extern bool X86DAGIsel; /// createX86ISelPattern - This pass converts an LLVM function into a /// machine code representation using pattern matching and a machine ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/X86/X86ISelLowering.cpp X86ISelLowering.h
Changes in directory llvm/lib/Target/X86: X86ISelLowering.cpp updated: 1.7 -> 1.8 X86ISelLowering.h updated: 1.2 -> 1.3 --- Log message: X86 lowers SELECT to a cmp / test followed by a conditional move. --- Diffs of the changes: (+29 -1) X86ISelLowering.cpp | 22 ++ X86ISelLowering.h |8 +++- 2 files changed, 29 insertions(+), 1 deletion(-) Index: llvm/lib/Target/X86/X86ISelLowering.cpp diff -u llvm/lib/Target/X86/X86ISelLowering.cpp:1.7 llvm/lib/Target/X86/X86ISelLowering.cpp:1.8 --- llvm/lib/Target/X86/X86ISelLowering.cpp:1.7 Thu Dec 15 13:49:23 2005 +++ llvm/lib/Target/X86/X86ISelLowering.cpp Fri Dec 16 19:21:05 2005 @@ -113,6 +113,11 @@ // These should be promoted to a larger select which is supported. setOperationAction(ISD::SELECT , MVT::i1 , Promote); setOperationAction(ISD::SELECT , MVT::i8 , Promote); + // X86 wants to expand cmov itself. + if (X86DAGIsel) { +setOperationAction(ISD::SELECT , MVT::i16 , Custom); +setOperationAction(ISD::SELECT , MVT::i32 , Custom); + } // We don't have line number support yet. setOperationAction(ISD::LOCATION, MVT::Other, Expand); @@ -930,5 +935,22 @@ Tys.push_back(MVT::Other); return DAG.getNode(ISD::MERGE_VALUES, Tys, Ops); } + case ISD::SELECT: { +unsigned Opc; +SDOperand Cond = Op.getOperand(0); +SDOperand True = Op.getOperand(1); +SDOperand False = Op.getOperand(2); +SDOperand CC; +if (Cond.getOpcode() == ISD::SETCC) { + CC = Cond.getOperand(2); + Cond = DAG.getNode(X86ISD::CMP, MVT::Flag, + Cond.getOperand(0), Cond.getOperand(1)); +} else { + CC = DAG.getCondCode(ISD::SETEQ); + Cond = DAG.getNode(X86ISD::TEST, MVT::Flag, Cond, Cond); +} +return DAG.getNode(X86ISD::CMOV, Op.getValueType(), + Op.getOperand(1), Op.getOperand(2), CC, Cond); + } } } Index: llvm/lib/Target/X86/X86ISelLowering.h diff -u llvm/lib/Target/X86/X86ISelLowering.h:1.2 llvm/lib/Target/X86/X86ISelLowering.h:1.3 --- llvm/lib/Target/X86/X86ISelLowering.h:1.2 Sun Nov 20 15:41:10 2005 +++ llvm/lib/Target/X86/X86ISelLowering.h Fri Dec 16 19:21:05 2005 @@ -23,7 +23,7 @@ namespace X86ISD { enum NodeType { // Start the numbering where the builtin ops leave off. - FIRST_NUMBER = ISD::BUILTIN_OP_END, + FIRST_NUMBER = ISD::BUILTIN_OP_END+X86::INSTRUCTION_LIST_END, /// FILD64m - This instruction implements SINT_TO_FP with a /// 64-bit source in memory and a FP reg result. This corresponds to @@ -66,6 +66,12 @@ /// RDTSC_DAG - This operation implements the lowering for /// readcyclecounter RDTSC_DAG, + + /// X86 compare and logical compare instructions. + CMP, TEST, + + /// X86 conditional moves. + CMOV, }; } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/X86/README.txt
Changes in directory llvm/lib/Target/X86: README.txt updated: 1.18 -> 1.19 --- Log message: Added some isel ideas. --- Diffs of the changes: (+14 -0) README.txt | 14 ++ 1 files changed, 14 insertions(+) Index: llvm/lib/Target/X86/README.txt diff -u llvm/lib/Target/X86/README.txt:1.18 llvm/lib/Target/X86/README.txt:1.19 --- llvm/lib/Target/X86/README.txt:1.18 Thu Dec 1 18:11:20 2005 +++ llvm/lib/Target/X86/README.txt Fri Dec 16 19:25:19 2005 @@ -88,3 +88,17 @@ movzbl %dil, %eax xorl$1, %eax ret + +//===-===// + +Some isel ideas: + +1. Dynamic programming based approach when compile time if not an + issue. +2. Code duplication (addressing mode) during isel. +3. Other ideas from "Register-Sensitive Selection, Duplication, and + Sequencing of Instructions". + +//===-===// + +Should we promote i16 to i32 to avoid partial register update stalls? ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
Changes in directory llvm/lib/CodeGen/SelectionDAG: LegalizeDAG.cpp updated: 1.229 -> 1.230 --- Log message: X86 lowers SELECT to a cmp / test followed by a conditional move. --- Diffs of the changes: (+10 -0) LegalizeDAG.cpp | 10 ++ 1 files changed, 10 insertions(+) Index: llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp diff -u llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.229 llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.230 --- llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.229 Fri Dec 16 16:45:28 2005 +++ llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp Fri Dec 16 19:21:05 2005 @@ -1325,6 +1325,16 @@ Tmp2, Tmp3, ISD::SETNE); } break; +case TargetLowering::Custom: { + SDOperand Tmp = +TLI.LowerOperation(DAG.getNode(ISD::SELECT, Node->getValueType(0), + Tmp1, Tmp2, Tmp3), DAG); + if (Tmp.Val) { +Result = LegalizeOp(Tmp); +break; + } + // FALLTHROUGH if the target thinks it is legal. +} case TargetLowering::Legal: if (Tmp1 != Node->getOperand(0) || Tmp2 != Node->getOperand(1) || Tmp3 != Node->getOperand(2)) ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/X86/X86RegisterInfo.td X86InstrInfo.td X86ISelDAGToDAG.cpp
Changes in directory llvm/lib/Target/X86: X86RegisterInfo.td updated: 1.23 -> 1.24 X86InstrInfo.td updated: 1.169 -> 1.170 X86ISelDAGToDAG.cpp updated: 1.12 -> 1.13 --- Log message: Added support for cmp, test, and conditional move instructions. --- Diffs of the changes: (+327 -111) X86ISelDAGToDAG.cpp |3 X86InstrInfo.td | 430 ++-- X86RegisterInfo.td |5 3 files changed, 327 insertions(+), 111 deletions(-) Index: llvm/lib/Target/X86/X86RegisterInfo.td diff -u llvm/lib/Target/X86/X86RegisterInfo.td:1.23 llvm/lib/Target/X86/X86RegisterInfo.td:1.24 --- llvm/lib/Target/X86/X86RegisterInfo.td:1.23 Wed Nov 30 22:51:06 2005 +++ llvm/lib/Target/X86/X86RegisterInfo.td Fri Dec 16 19:24:02 2005 @@ -60,6 +60,7 @@ def ST6 : Register<"ST(6)">; def ST7 : Register<"ST(7)">; // Flags, Segment registers, etc... + def STATUS : Register<"STATUS">; } //===--===// @@ -135,3 +136,7 @@ } }]; } + +def FLAGS_REGS : RegisterClass<"X86", [FlagVT], 32, [STATUS]> { +let Size = 32; +} Index: llvm/lib/Target/X86/X86InstrInfo.td diff -u llvm/lib/Target/X86/X86InstrInfo.td:1.169 llvm/lib/Target/X86/X86InstrInfo.td:1.170 --- llvm/lib/Target/X86/X86InstrInfo.td:1.169 Thu Dec 15 13:49:23 2005 +++ llvm/lib/Target/X86/X86InstrInfo.td Fri Dec 16 19:24:02 2005 @@ -13,6 +13,26 @@ // //===--===// +//===--===// +// X86 specific DAG Nodes. +// + +def SDTX86CmpTest : SDTypeProfile<1, 2, [SDTCisVT<0, FlagVT>, SDTCisInt<1>, + SDTCisSameAs<1, 2>]>; + +def SDTX86Cmov: SDTypeProfile<1, 4, + [SDTCisSameAs<0, 1>, SDTCisSameAs<1, 2>, + SDTCisVT<3, OtherVT>, SDTCisVT<4, FlagVT>]>; + +def X86cmp : SDNode<"X86ISD::CMP" , SDTX86CmpTest, []>; +def X86test : SDNode<"X86ISD::TEST", SDTX86CmpTest, []>; + +def X86cmov : SDNode<"X86ISD::CMOV", SDTX86Cmov,[]>; + +//===--===// +// X86 Operand Definitions. +// + // *mem - Operand definitions for the funky X86 addressing mode operands. // class X86MemOperand : Operand { @@ -46,12 +66,20 @@ // Branch targets have OtherVT type. def brtarget : Operand; +//===--===// +// X86 Complex Pattern Definitions. +// + // Define X86 specific addressing mode. def addr: ComplexPattern; def leaaddr : ComplexPattern; +//===--===// +// X86 Instruction Format Definitions. +// + // Format specifies the encoding used by the instruction. This is part of the // ad-hoc solution used to emit machine instruction encodings by our machine // code emitter. @@ -70,6 +98,10 @@ def MRM3m : Format<27>; def MRM4m : Format<28>; def MRM5m : Format<29>; def MRM6m : Format<30>; def MRM7m : Format<31>; +//===--===// +// X86 specific pattern fragments. +// + // ImmType - This specifies the immediate type used by an instruction. This is // part of the ad-hoc solution used to emit machine instruction encodings by our // machine code emitter. @@ -513,81 +545,253 @@ // Conditional moves def CMOVB16rr : I<0x42, MRMSrcReg, // if , TB, OpSize; + "cmovb {$src2, $dst|$dst, $src2}", + [(set R16:$dst, (X86cmov R16:$src1, R16:$src2, + SETULT, STATUS))]>, + Imp<[STATUS],[]>, TB, OpSize; def CMOVB16rm : I<0x42, MRMSrcMem, // if , TB, OpSize; + "cmovb {$src2, $dst|$dst, $src2}", + [(set R16:$dst, (X86cmov R16:$src1, (loadi16 addr:$src2), + SETULT, STATUS))]>, + Imp<[STATUS],[]>, TB, OpSize; def CMOVB32rr : I<0x42, MRMSrcReg, // if , TB; + "cmovb {$src2, $dst|$dst, $src2}", + [(set R32:$dst, (X86cmov R32:$src1, R32:$src2, + SETULT, STATUS))]>, + Imp<[STATUS],[]>, TB; def CMOVB32rm : I<0x42, MRMSrcMem, // if , TB; + "cmovb {$src2, $dst|$dst, $src2}", + [(set R32:$dst, (X86cmov R32:$src1, (loadi32 addr:$src2), + SETULT, STATUS))]>, + Imp<[STATUS],[]>, TB; def CMOVAE16rr: I<0x43, MRMSrcReg, // if >=u, R16 = R16 (ops R16:$dst, R16:$src1, R16:$src2), - "cmovae {$src2, $dst|$dst, $src2}", []>, TB, OpSize; + "cmovae {$src2, $dst|$dst, $src2}", + [(set R16:$dst, (X86cmov R16:$src1, R16:$src2, +
[llvm-commits] CVS: llvm/include/llvm/CodeGen/SelectionDAG.h
Changes in directory llvm/include/llvm/CodeGen: SelectionDAG.h updated: 1.78 -> 1.79 --- Log message: Yet another variant of getTargetNode(). --- Diffs of the changes: (+17 -0) SelectionDAG.h | 17 + 1 files changed, 17 insertions(+) Index: llvm/include/llvm/CodeGen/SelectionDAG.h diff -u llvm/include/llvm/CodeGen/SelectionDAG.h:1.78 llvm/include/llvm/CodeGen/SelectionDAG.h:1.79 --- llvm/include/llvm/CodeGen/SelectionDAG.h:1.78 Fri Dec 9 18:37:58 2005 +++ llvm/include/llvm/CodeGen/SelectionDAG.hFri Dec 16 19:44:51 2005 @@ -418,6 +418,23 @@ Ops.push_back(Op6); return getNode(ISD::BUILTIN_OP_END+Opcode, ResultTys, Ops); } + SDOperand getTargetNode(unsigned Opcode, MVT::ValueType VT1, + MVT::ValueType VT2, SDOperand Op1, SDOperand Op2, + SDOperand Op3, SDOperand Op4, SDOperand Op5, + SDOperand Op6, SDOperand Op7) { +std::vector ResultTys; +ResultTys.push_back(VT1); +ResultTys.push_back(VT2); +std::vector Ops; +Ops.push_back(Op1); +Ops.push_back(Op2); +Ops.push_back(Op3); +Ops.push_back(Op4); +Ops.push_back(Op5); +Ops.push_back(Op6); +Ops.push_back(Op7); + return getNode(ISD::BUILTIN_OP_END+Opcode, ResultTys, Ops); + } SDOperand getTargetNode(unsigned Opcode, MVT::ValueType VT1, MVT::ValueType VT2, std::vector &Ops) { std::vector ResultTys; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/X86/X86InstrInfo.td
Changes in directory llvm/lib/Target/X86: X86InstrInfo.td updated: 1.170 -> 1.171 --- Log message: Added anyext, modelled as zext on X86. --- Diffs of the changes: (+5 -0) X86InstrInfo.td |5 + 1 files changed, 5 insertions(+) Index: llvm/lib/Target/X86/X86InstrInfo.td diff -u llvm/lib/Target/X86/X86InstrInfo.td:1.170 llvm/lib/Target/X86/X86InstrInfo.td:1.171 --- llvm/lib/Target/X86/X86InstrInfo.td:1.170 Fri Dec 16 19:24:02 2005 +++ llvm/lib/Target/X86/X86InstrInfo.td Fri Dec 16 19:47:57 2005 @@ -1932,6 +1932,11 @@ // Handling 1 bit extload def : Pat<(extloadi8i1 addr:$src), (MOV8rm addr:$src)>; +// Modeling anyext as zext +def : Pat<(i16 (anyext R8 :$src)), (MOVZX16rr8 R8 :$src)>; +def : Pat<(i32 (anyext R8 :$src)), (MOVZX32rr8 R8 :$src)>; +def : Pat<(i32 (anyext R16:$src)), (MOVZX32rr16 R16:$src)>; + //===--===// // XMM Floating point support (requires SSE2) //===--===// ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
Changes in directory llvm/lib/Target/X86: X86ISelDAGToDAG.cpp updated: 1.13 -> 1.14 --- Log message: Added truncate. --- Diffs of the changes: (+28 -0) X86ISelDAGToDAG.cpp | 28 1 files changed, 28 insertions(+) Index: llvm/lib/Target/X86/X86ISelDAGToDAG.cpp diff -u llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.13 llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.14 --- llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.13Fri Dec 16 19:24:02 2005 +++ llvm/lib/Target/X86/X86ISelDAGToDAG.cpp Fri Dec 16 20:02:50 2005 @@ -391,6 +391,34 @@ } break; +case ISD::TRUNCATE: { + unsigned Reg; + MVT::ValueType VT; + switch (Node->getOperand(0).getValueType()) { +default: assert(0 && "Unknown truncate!"); +case MVT::i16: Reg = X86::AX; Opc = X86::MOV16rr; VT = MVT::i16; break; +case MVT::i32: Reg = X86::EAX; Opc = X86::MOV32rr; VT = MVT::i32; break; + } + SDOperand Tmp0 = Select(Node->getOperand(0)); + SDOperand Tmp1 = CurDAG->getTargetNode(Opc, VT, Tmp0); + SDOperand InFlag = SDOperand(0,0); + SDOperand Result = CurDAG->getCopyToReg(CurDAG->getEntryNode(), + Reg, Tmp1, InFlag).getValue(1); + SDOperand Chain = Result.getValue(0); + InFlag = Result.getValue(1); + + switch (NVT) { +default: assert(0 && "Unknown truncate!"); +case MVT::i8: Reg = X86::AL; Opc = X86::MOV8rr; VT = MVT::i8; break; +case MVT::i16: Reg = X86::AX; Opc = X86::MOV16rr; VT = MVT::i16; break; + } + + Result = CurDAG->getCopyFromReg(Chain, + Reg, VT, InFlag); + return CodeGenMap[N] = CurDAG->getTargetNode(Opc, VT, Result); + break; +} + case ISD::RET: { SDOperand Chain = Node->getOperand(0); // Token chain. unsigned NumOps = Node->getNumOperands(); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm-www/developers.txt
Changes in directory llvm-www: developers.txt updated: 1.1 -> 1.2 --- Log message: Added me! --- Diffs of the changes: (+1 -0) developers.txt |1 + 1 files changed, 1 insertion(+) Index: llvm-www/developers.txt diff -u llvm-www/developers.txt:1.1 llvm-www/developers.txt:1.2 --- llvm-www/developers.txt:1.1 Mon Oct 24 20:03:36 2005 +++ llvm-www/developers.txt Sat Dec 17 00:13:35 2005 @@ -3,6 +3,7 @@ Nate Begeman href=http://sampo.lasthome.net/ img=PhotoNate.jpg width=160 height=130 alt=Sampo RobBocchinoimg=PhotoRob.jpgwidth=140 height=187 alt=Rob Misha Brukman href=http://misha.brukman.net/code/llvm/ img=PhotoMisha.png width=175 height=198 alt=Misha +Evan Cheng href=mailto:[EMAIL PROTECTED] img=PhotoEvan.jpg width=128 height=128 alt=Grawp Jeff Cohen href=http://jolt-lang.org/ img=PhotoJeffCohen.jpg width=165 height=134 alt=jeffc John Criswellhref=http://www.bigw.org/~jcriswel/ img=PhotoJohn.gif width=76height=76 alt=Dogbert Alkis Evlogimenos href=http://alkis.evlogimenos.com img=PhotoAlkis.jpg width=200 height=170 alt=alkis ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm-www/img/PhotoEvan.jpg
Changes in directory llvm-www/img: PhotoEvan.jpg added (r1.1) --- Log message: Added me! --- Diffs of the changes: (+0 -0) PhotoEvan.jpg |0 1 files changed Index: llvm-www/img/PhotoEvan.jpg ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm-www/img/PhotoEvan.jpg
Changes in directory llvm-www/img: PhotoEvan.jpg updated: 1.1 -> 1.2 --- Log message: A scaled down photo! --- Diffs of the changes: (+0 -0) PhotoEvan.jpg |0 1 files changed Index: llvm-www/img/PhotoEvan.jpg ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm-www/developers.txt
Changes in directory llvm-www: developers.txt updated: 1.2 -> 1.3 --- Log message: Correct dimension. --- Diffs of the changes: (+1 -1) developers.txt |2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm-www/developers.txt diff -u llvm-www/developers.txt:1.2 llvm-www/developers.txt:1.3 --- llvm-www/developers.txt:1.2 Sat Dec 17 00:13:35 2005 +++ llvm-www/developers.txt Sat Dec 17 00:26:01 2005 @@ -3,7 +3,7 @@ Nate Begeman href=http://sampo.lasthome.net/ img=PhotoNate.jpg width=160 height=130 alt=Sampo RobBocchinoimg=PhotoRob.jpgwidth=140 height=187 alt=Rob Misha Brukman href=http://misha.brukman.net/code/llvm/ img=PhotoMisha.png width=175 height=198 alt=Misha -Evan Cheng href=mailto:[EMAIL PROTECTED] img=PhotoEvan.jpg width=128 height=128 alt=Grawp +Evan Cheng href=mailto:[EMAIL PROTECTED] img=PhotoEvan.jpg width=128 height=156 alt=Grawp Jeff Cohen href=http://jolt-lang.org/ img=PhotoJeffCohen.jpg width=165 height=134 alt=jeffc John Criswellhref=http://www.bigw.org/~jcriswel/ img=PhotoJohn.gif width=76height=76 alt=Dogbert Alkis Evlogimenos href=http://alkis.evlogimenos.com img=PhotoAlkis.jpg width=200 height=170 alt=alkis ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm-www/img/PhotoHenrik.jpg
Changes in directory llvm-www/img: PhotoHenrik.jpg updated: 1.1 -> 1.2 --- Log message: Shrink Henrik just a tad. Upon Chris' request. --- Diffs of the changes: (+0 -0) PhotoHenrik.jpg |0 1 files changed Index: llvm-www/img/PhotoHenrik.jpg ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/SparcV8/SparcV8InstrFormats.td SparcV8InstrInfo.td
Changes in directory llvm/lib/Target/SparcV8: SparcV8InstrFormats.td updated: 1.7 -> 1.8 SparcV8InstrInfo.td updated: 1.45 -> 1.46 --- Log message: convert FP instructions to use an asmstring and operand list, allowing FP programs to work on V8 again --- Diffs of the changes: (+72 -28) SparcV8InstrFormats.td |7 ++- SparcV8InstrInfo.td| 93 +++-- 2 files changed, 72 insertions(+), 28 deletions(-) Index: llvm/lib/Target/SparcV8/SparcV8InstrFormats.td diff -u llvm/lib/Target/SparcV8/SparcV8InstrFormats.td:1.7 llvm/lib/Target/SparcV8/SparcV8InstrFormats.td:1.8 --- llvm/lib/Target/SparcV8/SparcV8InstrFormats.td:1.7 Fri Dec 16 01:18:48 2005 +++ llvm/lib/Target/SparcV8/SparcV8InstrFormats.td Sat Dec 17 00:32:52 2005 @@ -89,12 +89,15 @@ } // floating-point -class F3_3 opVal, bits<6> op3val, bits<9> opfval, string name> : F3 { +class F3_3 opVal, bits<6> op3val, bits<9> opfval, dag ops, + string asmstr> : F3 { bits<5> rs2; + dag OperandList = ops; + let AsmString = asmstr; + let op = opVal; let op3= op3val; - let Name = name; let Inst{13-5} = opfval; // fp opcode let Inst{4-0} = rs2; Index: llvm/lib/Target/SparcV8/SparcV8InstrInfo.td diff -u llvm/lib/Target/SparcV8/SparcV8InstrInfo.td:1.45 llvm/lib/Target/SparcV8/SparcV8InstrInfo.td:1.46 --- llvm/lib/Target/SparcV8/SparcV8InstrInfo.td:1.45Fri Dec 16 01:18:48 2005 +++ llvm/lib/Target/SparcV8/SparcV8InstrInfo.td Sat Dec 17 00:32:52 2005 @@ -452,44 +452,85 @@ "wr $b, $c, $dst">; // Convert Integer to Floating-point Instructions, p. 141 -def FITOS : F3_3<2, 0b110100, 0b011000100, "fitos">; -def FITOD : F3_3<2, 0b110100, 0b011001000, "fitod">; +def FITOS : F3_3<2, 0b110100, 0b011000100, + (ops FPRegs:$dst, FPRegs:$src), + "fitos $src, $dst">; +def FITOD : F3_3<2, 0b110100, 0b011001000, + (ops DFPRegs:$dst, DFPRegs:$src), + "fitod $src, $dst">; // Convert Floating-point to Integer Instructions, p. 142 -def FSTOI : F3_3<2, 0b110100, 0b011010001, "fstoi">; -def FDTOI : F3_3<2, 0b110100, 0b011010010, "fdtoi">; +def FSTOI : F3_3<2, 0b110100, 0b011010001, + (ops FPRegs:$dst, FPRegs:$src), + "fstoi $src, $dst">; +def FDTOI : F3_3<2, 0b110100, 0b011010010, + (ops DFPRegs:$dst, DFPRegs:$src), + "fdtoi $src, $dst">; // Convert between Floating-point Formats Instructions, p. 143 -def FSTOD : F3_3<2, 0b110100, 0b011001001, "fstod">; -def FDTOS : F3_3<2, 0b110100, 0b011000110, "fdtos">; +def FSTOD : F3_3<2, 0b110100, 0b011001001, + (ops DFPRegs:$dst, FPRegs:$src), + "fstod $src, $dst">; +def FDTOS : F3_3<2, 0b110100, 0b011000110, + (ops FPRegs:$dst, DFPRegs:$src), + "fdtos $src, $dst">; // Floating-point Move Instructions, p. 144 -def FMOVS : F3_3<2, 0b110100, 0b1, "fmovs">; -def FNEGS : F3_3<2, 0b110100, 0b00101, "fnegs">; -def FABSS : F3_3<2, 0b110100, 0b01001, "fabss">; +def FMOVS : F3_3<2, 0b110100, 0b1, + (ops FPRegs:$dst, FPRegs:$src), + "fmovs $src, $dst">; +def FNEGS : F3_3<2, 0b110100, 0b00101, + (ops FPRegs:$dst, FPRegs:$src), + "fnegs $src, $dst">; +def FABSS : F3_3<2, 0b110100, 0b01001, + (ops FPRegs:$dst, FPRegs:$src), + "fabss $src, $dst">; // Floating-point Add and Subtract Instructions, p. 146 -def FADDS : F3_3<2, 0b110100, 0b00101, "fadds">; -def FADDD : F3_3<2, 0b110100, 0b00110, "faddd">; -def FSUBS : F3_3<2, 0b110100, 0b001000101, "fsubs">; -def FSUBD : F3_3<2, 0b110100, 0b001000110, "fsubd">; +def FADDS : F3_3<2, 0b110100, 0b00101, + (ops FPRegs:$dst, FPRegs:$src1, FPRegs:$src2), + "fadds $src1, $src2, $dst">; +def FADDD : F3_3<2, 0b110100, 0b00110, + (ops DFPRegs:$dst, DFPRegs:$src1, DFPRegs:$src2), + "faddd $src1, $src2, $dst">; +def FSUBS : F3_3<2, 0b110100, 0b001000101, + (ops FPRegs:$dst, FPRegs:$src1, FPRegs:$src2), + "fsubs $src1, $src2, $dst">; +def FSUBD : F3_3<2, 0b110100, 0b001000110, + (ops DFPRegs:$dst, DFPRegs:$src1, DFPRegs:$src2), + "fsubd $src1, $src2, $dst">; // Floating-point Multiply and Divide Instructions, p. 147 -def FMULS : F3_3<2, 0b110100, 0b001001001, "fmuls">; -def FMULD : F3_3<2, 0b110100, 0b001001010, "fmuld">; -def FSMULD : F3_3<2, 0b110100, 0b001101001, "fsmuld">; -def FDIVS : F3_3<2, 0b110100, 0b001001101, "fdivs">; -def FDIVD : F3_3<2, 0b110100, 0b001001110, "fdivd">; +def FMULS : F3_3<2, 0b110100, 0b001001001, + (ops FPRegs:$dst, FPRegs:$src1, FPRegs:$src2), + "fmuls $src1, $src2, $dst">; +def FMULD : F3_3<2, 0b110100, 0b001001010, +
[llvm-commits] CVS: llvm-www/developers.txt
Changes in directory llvm-www: developers.txt updated: 1.3 -> 1.4 --- Log message: Update Hendrik's dimension. --- Diffs of the changes: (+1 -1) developers.txt |2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm-www/developers.txt diff -u llvm-www/developers.txt:1.3 llvm-www/developers.txt:1.4 --- llvm-www/developers.txt:1.3 Sat Dec 17 00:26:01 2005 +++ llvm-www/developers.txt Sat Dec 17 00:34:09 2005 @@ -1,5 +1,5 @@ Vikram Advehref=http://www-sal.cs.uiuc.edu/~vadve/ img=PhotoVikram.jpg width=120 height=120 alt=vadve -Henrik Bachhref=mailto:[EMAIL PROTECTED] img=PhotoHenrik.jpg width=172 height=219 alt=Henrik +Henrik Bachhref=mailto:[EMAIL PROTECTED] img=PhotoHenrik.jpg width=156 height=178 alt=Henrik Nate Begeman href=http://sampo.lasthome.net/ img=PhotoNate.jpg width=160 height=130 alt=Sampo RobBocchinoimg=PhotoRob.jpgwidth=140 height=187 alt=Rob Misha Brukman href=http://misha.brukman.net/code/llvm/ img=PhotoMisha.png width=175 height=198 alt=Misha ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm-www/developers.cgi
Changes in directory llvm-www: developers.cgi updated: 1.5 -> 1.6 --- Log message: Make things work if we have more than 9 rows --- Diffs of the changes: (+2 -1) developers.cgi |3 ++- 1 files changed, 2 insertions(+), 1 deletion(-) Index: llvm-www/developers.cgi diff -u llvm-www/developers.cgi:1.5 llvm-www/developers.cgi:1.6 --- llvm-www/developers.cgi:1.5 Wed Oct 26 14:10:54 2005 +++ llvm-www/developers.cgi Sat Dec 17 00:38:38 2005 @@ -38,7 +38,7 @@ Name Picture - + Name Picture @@ -160,6 +160,7 @@ print "\n"; print " \n" if $Column == 1; + print " " if $Column == 0; $Column = $Column ^ 1; } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm-www/img/PhotoEvan.jpg
Changes in directory llvm-www/img: PhotoEvan.jpg updated: 1.2 -> 1.3 --- Log message: Optimized for Web. --- Diffs of the changes: (+0 -0) PhotoEvan.jpg |0 1 files changed Index: llvm-www/img/PhotoEvan.jpg ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm-www/developers.txt
Changes in directory llvm-www: developers.txt updated: 1.4 -> 1.5 --- Log message: Correct size. --- Diffs of the changes: (+1 -1) developers.txt |2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm-www/developers.txt diff -u llvm-www/developers.txt:1.4 llvm-www/developers.txt:1.5 --- llvm-www/developers.txt:1.4 Sat Dec 17 00:34:09 2005 +++ llvm-www/developers.txt Sat Dec 17 00:49:45 2005 @@ -3,7 +3,7 @@ Nate Begeman href=http://sampo.lasthome.net/ img=PhotoNate.jpg width=160 height=130 alt=Sampo RobBocchinoimg=PhotoRob.jpgwidth=140 height=187 alt=Rob Misha Brukman href=http://misha.brukman.net/code/llvm/ img=PhotoMisha.png width=175 height=198 alt=Misha -Evan Cheng href=mailto:[EMAIL PROTECTED] img=PhotoEvan.jpg width=128 height=156 alt=Grawp +Evan Cheng href=mailto:[EMAIL PROTECTED] img=PhotoEvan.jpg width=152 height=198 alt=Grawp Jeff Cohen href=http://jolt-lang.org/ img=PhotoJeffCohen.jpg width=165 height=134 alt=jeffc John Criswellhref=http://www.bigw.org/~jcriswel/ img=PhotoJohn.gif width=76height=76 alt=Dogbert Alkis Evlogimenos href=http://alkis.evlogimenos.com img=PhotoAlkis.jpg width=200 height=170 alt=alkis ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/X86/README.txt
Changes in directory llvm/lib/Target/X86: README.txt updated: 1.19 -> 1.20 --- Log message: Added an idea about any_extend for performance tuning. --- Diffs of the changes: (+5 -0) README.txt |5 + 1 files changed, 5 insertions(+) Index: llvm/lib/Target/X86/README.txt diff -u llvm/lib/Target/X86/README.txt:1.19 llvm/lib/Target/X86/README.txt:1.20 --- llvm/lib/Target/X86/README.txt:1.19 Fri Dec 16 19:25:19 2005 +++ llvm/lib/Target/X86/README.txt Sat Dec 17 00:54:43 2005 @@ -102,3 +102,8 @@ //===-===// Should we promote i16 to i32 to avoid partial register update stalls? + +//===-===// + +Leave any_extend as pseudo instruction and hint to register +allocator. Delay codegen until post register allocation. ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/SparcV8/README.txt SparcV8AsmPrinter.cpp SparcV8InstrFormats.td SparcV8InstrInfo.td
Changes in directory llvm/lib/Target/SparcV8: README.txt updated: 1.37 -> 1.38 SparcV8AsmPrinter.cpp updated: 1.40 -> 1.41 SparcV8InstrFormats.td updated: 1.8 -> 1.9 SparcV8InstrInfo.td updated: 1.46 -> 1.47 --- Log message: Convert the remaining instructions over, branches and calls. Fix a couple minor bugs --- Diffs of the changes: (+50 -82) README.txt |9 ++--- SparcV8AsmPrinter.cpp | 40 + SparcV8InstrFormats.td |6 ++- SparcV8InstrInfo.td| 77 + 4 files changed, 50 insertions(+), 82 deletions(-) Index: llvm/lib/Target/SparcV8/README.txt diff -u llvm/lib/Target/SparcV8/README.txt:1.37 llvm/lib/Target/SparcV8/README.txt:1.38 --- llvm/lib/Target/SparcV8/README.txt:1.37 Fri Dec 16 01:20:53 2005 +++ llvm/lib/Target/SparcV8/README.txt Sat Dec 17 00:54:41 2005 @@ -1,11 +1,10 @@ Meta TODO list: -1. Convert all instructions to use autogeneration for asm strings. -2. Convert asmprinter to use lib/CodeGen/AsmPrinter for global init printing +1. Convert asmprinter to use lib/CodeGen/AsmPrinter for global init printing constant pool printing, etc. -3. Create a new DAG -> DAG instruction selector, by adding patterns to the +2. Create a new DAG -> DAG instruction selector, by adding patterns to the instructions. -4. profit! +3. profit! SparcV8 backend skeleton @@ -83,5 +82,5 @@ * Generate fsqrtd for calls to sqrt() (~ 4% speedup on Olden/tsp). -$Date: 2005/12/16 07:20:53 $ +$Date: 2005/12/17 06:54:41 $ Index: llvm/lib/Target/SparcV8/SparcV8AsmPrinter.cpp diff -u llvm/lib/Target/SparcV8/SparcV8AsmPrinter.cpp:1.40 llvm/lib/Target/SparcV8/SparcV8AsmPrinter.cpp:1.41 --- llvm/lib/Target/SparcV8/SparcV8AsmPrinter.cpp:1.40 Fri Dec 16 01:16:02 2005 +++ llvm/lib/Target/SparcV8/SparcV8AsmPrinter.cpp Sat Dec 17 00:54:41 2005 @@ -70,7 +70,6 @@ void emitGlobalConstant(const Constant *CV); void printConstantPool(MachineConstantPool *MCP); void printOperand(const MachineInstr *MI, int opNum); -void printMachineInstruction(const MachineInstr *MI); bool printInstruction(const MachineInstr *MI); // autogenerated. bool runOnMachineFunction(MachineFunction &F); bool doInitialization(Module &M); @@ -357,7 +356,8 @@ for (MachineBasicBlock::const_iterator II = I->begin(), E = I->end(); II != E; ++II) { // Print the assembly for the instruction. - printMachineInstruction(II); + O << "\t"; + printInstruction(II); } } @@ -421,42 +421,6 @@ if (CloseParen) O << ")"; } -/// printMachineInstruction -- Print out a single SparcV8 LLVM instruction -/// MI in GAS syntax to the current output stream. -/// -void SparcV8AsmPrinter::printMachineInstruction(const MachineInstr *MI) { - O << "\t"; - if (printInstruction(MI)) return; - - unsigned Opcode = MI->getOpcode(); - const TargetInstrInfo &TII = *TM.getInstrInfo(); - const TargetInstrDescriptor &Desc = TII.get(Opcode); - - O << Desc.Name << " "; - - // print non-immediate, non-register-def operands - // then print immediate operands - // then print register-def operands. - std::vector print_order; - for (unsigned i = 0; i < MI->getNumOperands (); ++i) -if (!(MI->getOperand (i).isImmediate () - || (MI->getOperand (i).isRegister () - && MI->getOperand (i).isDef ( - print_order.push_back (i); - for (unsigned i = 0; i < MI->getNumOperands (); ++i) -if (MI->getOperand (i).isImmediate ()) - print_order.push_back (i); - for (unsigned i = 0; i < MI->getNumOperands (); ++i) -if (MI->getOperand (i).isRegister () && MI->getOperand (i).isDef ()) - print_order.push_back (i); - for (unsigned i = 0, e = print_order.size (); i != e; ++i) { -printOperand (MI, print_order[i]); -if (i != (print_order.size () - 1)) - O << ", "; - } - O << "\n"; -} - bool SparcV8AsmPrinter::doInitialization(Module &M) { Mang = new Mangler(M); return false; // success Index: llvm/lib/Target/SparcV8/SparcV8InstrFormats.td diff -u llvm/lib/Target/SparcV8/SparcV8InstrFormats.td:1.8 llvm/lib/Target/SparcV8/SparcV8InstrFormats.td:1.9 --- llvm/lib/Target/SparcV8/SparcV8InstrFormats.td:1.8 Sat Dec 17 00:32:52 2005 +++ llvm/lib/Target/SparcV8/SparcV8InstrFormats.td Sat Dec 17 00:54:41 2005 @@ -32,13 +32,15 @@ let Inst{29-25} = rd; } -class F2_2 condVal, bits<3> op2Val, string name> : F2 { +class F2_2 condVal, bits<3> op2Val, dag ops, string asmstr> : F2 { bits<4> cond; bit annul = 0; // currently unused + dag OperandList = ops; + let AsmString = asmstr; + let cond= condVal; let op2 = op2Val; - let Name= name; let Inst{29}= annul; let Inst{28-25} = cond; Index: llvm/lib/Target/SparcV8/SparcV8InstrInfo.td diff -u llvm/lib/Target/SparcV8/SparcV8InstrInfo.td:1.46 llvm/lib/Target/SparcV8/SparcV8InstrInfo.td:1.47 --- llvm/lib/Target/SparcV8/Spar
[llvm-commits] CVS: llvm/lib/Target/SparcV8/SparcV8AsmPrinter.cpp
Changes in directory llvm/lib/Target/SparcV8: SparcV8AsmPrinter.cpp updated: 1.41 -> 1.42 --- Log message: Use the shared AsmPrinter code for some basic stuff. No functionality change except for fewer .section directives emitted --- Diffs of the changes: (+14 -41) SparcV8AsmPrinter.cpp | 55 -- 1 files changed, 14 insertions(+), 41 deletions(-) Index: llvm/lib/Target/SparcV8/SparcV8AsmPrinter.cpp diff -u llvm/lib/Target/SparcV8/SparcV8AsmPrinter.cpp:1.41 llvm/lib/Target/SparcV8/SparcV8AsmPrinter.cpp:1.42 --- llvm/lib/Target/SparcV8/SparcV8AsmPrinter.cpp:1.41 Sat Dec 17 00:54:41 2005 +++ llvm/lib/Target/SparcV8/SparcV8AsmPrinter.cpp Sat Dec 17 01:04:29 2005 @@ -18,6 +18,7 @@ #include "llvm/DerivedTypes.h" #include "llvm/Module.h" #include "llvm/Assembly/Writer.h" +#include "llvm/CodeGen/AsmPrinter.h" #include "llvm/CodeGen/MachineFunctionPass.h" #include "llvm/CodeGen/MachineConstantPool.h" #include "llvm/CodeGen/MachineInstr.h" @@ -33,21 +34,8 @@ namespace { Statistic<> EmittedInsts("asm-printer", "Number of machine instrs printed"); - struct SparcV8AsmPrinter : public MachineFunctionPass { -/// Output stream on which we're printing assembly code. -/// -std::ostream &O; - -/// Target machine description which we query for reg. names, data -/// layout, etc. -/// -TargetMachine &TM; - -/// Name-mangler for global names. -/// -Mangler *Mang; - -SparcV8AsmPrinter(std::ostream &o, TargetMachine &tm) : O(o), TM(tm) { } + struct SparcV8AsmPrinter : public AsmPrinter { +SparcV8AsmPrinter(std::ostream &O, TargetMachine &TM) : AsmPrinter(O, TM) {} /// We name each basic block in a Function with a unique number, so /// that we can consistently refer to them later. This is cleared @@ -56,12 +44,6 @@ typedef std::map ValueMapTy; ValueMapTy NumberForBB; -/// Cache of mangled name for current function. This is -/// recalculated at the beginning of each call to -/// runOnMachineFunction(). -/// -std::string CurrentFnName; - virtual const char *getPassName() const { return "SparcV8 Assembly Printer"; } @@ -306,8 +288,8 @@ if (CP.empty()) return; + SwitchSection(".section \".rodata\"\n", 0); for (unsigned i = 0, e = CP.size(); i != e; ++i) { -O << "\t.section \".rodata\"\n"; O << "\t.align " << (unsigned)TD.getTypeAlignment(CP[i]->getType()) << "\n"; O << ".CPI" << CurrentFnName << "_" << i << ":\t\t\t\t\t!" @@ -320,6 +302,8 @@ /// method to print assembly for each instruction. /// bool SparcV8AsmPrinter::runOnMachineFunction(MachineFunction &MF) { + SetupMachineFunction(MF); + // BBNumber is used here so that a given Printer will never give two // BBs the same name. (If you have a better way, please let me know!) static unsigned BBNumber = 0; @@ -358,6 +342,7 @@ // Print the assembly for the instruction. O << "\t"; printInstruction(II); + ++EmittedInsts; } } @@ -426,21 +411,8 @@ return false; // success } -// SwitchSection - Switch to the specified section of the executable if we are -// not already in it! -// -static void SwitchSection(std::ostream &OS, std::string &CurSection, - const char *NewSection) { - if (CurSection != NewSection) { -CurSection = NewSection; -if (!CurSection.empty()) - OS << "\t.section \"" << NewSection << "\"\n"; - } -} - bool SparcV8AsmPrinter::doFinalization(Module &M) { const TargetData &TD = TM.getTargetData(); - std::string CurSection; // Print out module-level global variables here. for (Module::const_global_iterator I = M.global_begin(), E = M.global_end(); I != E; ++I) @@ -454,7 +426,7 @@ if (C->isNullValue() && (I->hasLinkOnceLinkage() || I->hasInternalLinkage() || I->hasWeakLinkage() /* FIXME: Verify correct */)) { -SwitchSection(O, CurSection, ".data"); +SwitchSection(".data", I); if (I->hasInternalLinkage()) O << "\t.local " << name << "\n"; @@ -469,8 +441,9 @@ case GlobalValue::WeakLinkage: // FIXME: Verify correct for weak. // Nonnull linkonce -> weak O << "\t.weak " << name << "\n"; - SwitchSection(O, CurSection, ""); - O << "\t.section\t\".llvm.linkonce.d." << name << "\",\"aw\",@progbits\n"; + SwitchSection("", I); + O << "\t.section\t\".llvm.linkonce.d." << name +<< "\",\"aw\",@progbits\n"; break; case GlobalValue::AppendingLinkage: @@ -482,9 +455,9 @@ // FALL THROUGH case GlobalValue::InternalLinkage: if (C->isNullValue()) -SwitchSection(O, CurSection, ".bss"); +SwitchSection(".bss", I); else -SwitchSection(O, CurSection, ".data"); +SwitchSection(".data", I); break; case Gl
[llvm-commits] CVS: llvm/lib/Target/SparcV8/SparcV8AsmPrinter.cpp
Changes in directory llvm/lib/Target/SparcV8: SparcV8AsmPrinter.cpp updated: 1.42 -> 1.43 --- Log message: Switch constant pool printing over to use the Shared AsmPrinter version --- Diffs of the changes: (+10 -27) SparcV8AsmPrinter.cpp | 37 ++--- 1 files changed, 10 insertions(+), 27 deletions(-) Index: llvm/lib/Target/SparcV8/SparcV8AsmPrinter.cpp diff -u llvm/lib/Target/SparcV8/SparcV8AsmPrinter.cpp:1.42 llvm/lib/Target/SparcV8/SparcV8AsmPrinter.cpp:1.43 --- llvm/lib/Target/SparcV8/SparcV8AsmPrinter.cpp:1.42 Sat Dec 17 01:04:29 2005 +++ llvm/lib/Target/SparcV8/SparcV8AsmPrinter.cpp Sat Dec 17 01:11:43 2005 @@ -35,7 +35,11 @@ Statistic<> EmittedInsts("asm-printer", "Number of machine instrs printed"); struct SparcV8AsmPrinter : public AsmPrinter { -SparcV8AsmPrinter(std::ostream &O, TargetMachine &TM) : AsmPrinter(O, TM) {} +SparcV8AsmPrinter(std::ostream &O, TargetMachine &TM) : AsmPrinter(O, TM) { + Data16bitsDirective = "\t.half\t"; + Data32bitsDirective = "\t.word\t"; + Data64bitsDirective = "\t.xword\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 @@ -50,7 +54,6 @@ void emitConstantValueOnly(const Constant *CV); void emitGlobalConstant(const Constant *CV); -void printConstantPool(MachineConstantPool *MCP); void printOperand(const MachineInstr *MI, int opNum); bool printInstruction(const MachineInstr *MI); // autogenerated. bool runOnMachineFunction(MachineFunction &F); @@ -277,33 +280,15 @@ O << "\n"; } -/// 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 SparcV8AsmPrinter::printConstantPool(MachineConstantPool *MCP) { - const std::vector &CP = MCP->getConstants(); - const TargetData &TD = TM.getTargetData(); - - if (CP.empty()) return; - - SwitchSection(".section \".rodata\"\n", 0); - for (unsigned i = 0, e = CP.size(); i != e; ++i) { -O << "\t.align " << (unsigned)TD.getTypeAlignment(CP[i]->getType()) - << "\n"; -O << ".CPI" << CurrentFnName << "_" << i << ":\t\t\t\t\t!" - << *CP[i] << "\n"; -emitGlobalConstant(CP[i]); - } -} - /// runOnMachineFunction - This uses the printMachineInstruction() /// method to print assembly for each instruction. /// bool SparcV8AsmPrinter::runOnMachineFunction(MachineFunction &MF) { SetupMachineFunction(MF); + // Print out constants referenced by the function + EmitConstantPool(MF.getConstantPool()); + // BBNumber is used here so that a given Printer will never give two // BBs the same name. (If you have a better way, please let me know!) static unsigned BBNumber = 0; @@ -312,9 +297,6 @@ // What's my mangled name? CurrentFnName = Mang->getValueName(MF.getFunction()); - // Print out constants referenced by the function - printConstantPool(MF.getConstantPool()); - // Print out labels for the function. O << "\t.text\n"; O << "\t.align 16\n"; @@ -398,7 +380,8 @@ O << MO.getSymbolName(); break; case MachineOperand::MO_ConstantPoolIndex: -O << ".CPI" << CurrentFnName << "_" << MO.getConstantPoolIndex(); +O << PrivateGlobalPrefix << "CPI" << getFunctionNumber() << "_" + << MO.getConstantPoolIndex(); break; default: O << ""; abort (); break; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/SparcV8/SparcV8AsmPrinter.cpp
Changes in directory llvm/lib/Target/SparcV8: SparcV8AsmPrinter.cpp updated: 1.43 -> 1.44 --- Log message: Use the AsmPrinter for global variable init printing. This eliminates a bunch of code and causes V8 to start using the fancy .asciz directive that the sun assembler supports. --- Diffs of the changes: (+2 -209) SparcV8AsmPrinter.cpp | 211 -- 1 files changed, 2 insertions(+), 209 deletions(-) Index: llvm/lib/Target/SparcV8/SparcV8AsmPrinter.cpp diff -u llvm/lib/Target/SparcV8/SparcV8AsmPrinter.cpp:1.43 llvm/lib/Target/SparcV8/SparcV8AsmPrinter.cpp:1.44 --- llvm/lib/Target/SparcV8/SparcV8AsmPrinter.cpp:1.43 Sat Dec 17 01:11:43 2005 +++ llvm/lib/Target/SparcV8/SparcV8AsmPrinter.cpp Sat Dec 17 01:17:08 2005 @@ -39,6 +39,7 @@ Data16bitsDirective = "\t.half\t"; Data32bitsDirective = "\t.word\t"; Data64bitsDirective = "\t.xword\t"; + ZeroDirective = 0; // no .zero or .space! } /// We name each basic block in a Function with a unique number, so @@ -52,8 +53,6 @@ return "SparcV8 Assembly Printer"; } -void emitConstantValueOnly(const Constant *CV); -void emitGlobalConstant(const Constant *CV); void printOperand(const MachineInstr *MI, int opNum); bool printInstruction(const MachineInstr *MI); // autogenerated. bool runOnMachineFunction(MachineFunction &F); @@ -74,212 +73,6 @@ return new SparcV8AsmPrinter(o, tm); } -/// toOctal - Convert the low order bits of X into an octal digit. -/// -static inline char toOctal(int X) { - return (X&7)+'0'; -} - -/// getAsCString - Return the specified array as a C compatible -/// string, only if the predicate isStringCompatible is true. -/// -static void printAsCString(std::ostream &O, const ConstantArray *CVA) { - assert(CVA->isString() && "Array is not string compatible!"); - - O << "\""; - for (unsigned i = 0; i != CVA->getNumOperands(); ++i) { -unsigned char C = cast(CVA->getOperand(i))->getRawValue(); - -if (C == '"') { - O << "\\\""; -} else if (C == '\\') { - O << ""; -} else if (isprint(C)) { - O << C; -} else { - switch(C) { - case '\b': O << "\\b"; break; - case '\f': O << "\\f"; break; - case '\n': O << "\\n"; break; - case '\r': O << "\\r"; break; - case '\t': O << "\\t"; break; - default: -O << '\\'; -O << toOctal(C >> 6); -O << toOctal(C >> 3); -O << toOctal(C >> 0); -break; - } -} - } - O << "\""; -} - -// Print out the specified constant, without a storage class. Only the -// constants valid in constant expressions can occur here. -void SparcV8AsmPrinter::emitConstantValueOnly(const Constant *CV) { - if (CV->isNullValue() || isa (CV)) -O << "0"; - else if (const ConstantBool *CB = dyn_cast(CV)) { -assert(CB == ConstantBool::True); -O << "1"; - } else if (const ConstantSInt *CI = dyn_cast(CV)) -if (((CI->getValue() << 32) >> 32) == CI->getValue()) - O << CI->getValue(); -else - O << (unsigned long long)CI->getValue(); - else if (const ConstantUInt *CI = dyn_cast(CV)) -O << CI->getValue(); - else if (const GlobalValue *GV = dyn_cast(CV)) -// This is a constant address for a global variable or function. Use the -// name of the variable or function as the address value. -O << Mang->getValueName(GV); - else if (const ConstantExpr *CE = dyn_cast(CV)) { -const TargetData &TD = TM.getTargetData(); -switch(CE->getOpcode()) { -case Instruction::GetElementPtr: { - // generate a symbolic expression for the byte address - const Constant *ptrVal = CE->getOperand(0); - std::vector idxVec(CE->op_begin()+1, CE->op_end()); - if (unsigned Offset = TD.getIndexedOffset(ptrVal->getType(), idxVec)) { -O << "("; -emitConstantValueOnly(ptrVal); -O << ") + " << Offset; - } else { -emitConstantValueOnly(ptrVal); - } - break; -} -case Instruction::Cast: { - // Support only non-converting or widening casts for now, that is, ones - // that do not involve a change in value. This assertion is really gross, - // and may not even be a complete check. - Constant *Op = CE->getOperand(0); - const Type *OpTy = Op->getType(), *Ty = CE->getType(); - - // Pointers on ILP32 machines can be losslessly converted back and - // forth into 32-bit or wider integers, regardless of signedness. - assert(((isa(OpTy) - && (Ty == Type::LongTy || Ty == Type::ULongTy - || Ty == Type::IntTy || Ty == Type::UIntTy)) - || (isa(Ty) - && (OpTy == Type::LongTy || OpTy == Type::ULongTy - || OpTy == Type::IntTy || OpTy == Type::UIntTy)) - || (((TD.getTypeSize(Ty) >= TD.getTypeSize(OpTy)) - && OpTy->isLosslesslyConvertibleTo(Ty - && "FIXME:
[llvm-commits] CVS: llvm/lib/Target/SparcV8/README.txt
Changes in directory llvm/lib/Target/SparcV8: README.txt updated: 1.38 -> 1.39 --- Log message: asmprinter done, added crucial missing step --- Diffs of the changes: (+3 -4) README.txt |7 +++ 1 files changed, 3 insertions(+), 4 deletions(-) Index: llvm/lib/Target/SparcV8/README.txt diff -u llvm/lib/Target/SparcV8/README.txt:1.38 llvm/lib/Target/SparcV8/README.txt:1.39 --- llvm/lib/Target/SparcV8/README.txt:1.38 Sat Dec 17 00:54:41 2005 +++ llvm/lib/Target/SparcV8/README.txt Sat Dec 17 01:17:59 2005 @@ -1,9 +1,8 @@ Meta TODO list: -1. Convert asmprinter to use lib/CodeGen/AsmPrinter for global init printing - constant pool printing, etc. -2. Create a new DAG -> DAG instruction selector, by adding patterns to the +1. Create a new DAG -> DAG instruction selector, by adding patterns to the instructions. +2. ??? 3. profit! @@ -82,5 +81,5 @@ * Generate fsqrtd for calls to sqrt() (~ 4% speedup on Olden/tsp). -$Date: 2005/12/17 06:54:41 $ +$Date: 2005/12/17 07:17:59 $ ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/X86/X86ISelLowering.cpp
Changes in directory llvm/lib/Target/X86: X86ISelLowering.cpp updated: 1.8 -> 1.9 --- Log message: Remove a few lines of dead code. --- Diffs of the changes: (+0 -3) X86ISelLowering.cpp |3 --- 1 files changed, 3 deletions(-) Index: llvm/lib/Target/X86/X86ISelLowering.cpp diff -u llvm/lib/Target/X86/X86ISelLowering.cpp:1.8 llvm/lib/Target/X86/X86ISelLowering.cpp:1.9 --- llvm/lib/Target/X86/X86ISelLowering.cpp:1.8 Fri Dec 16 19:21:05 2005 +++ llvm/lib/Target/X86/X86ISelLowering.cpp Sat Dec 17 01:18:44 2005 @@ -936,10 +936,7 @@ return DAG.getNode(ISD::MERGE_VALUES, Tys, Ops); } case ISD::SELECT: { -unsigned Opc; SDOperand Cond = Op.getOperand(0); -SDOperand True = Op.getOperand(1); -SDOperand False = Op.getOperand(2); SDOperand CC; if (Cond.getOpcode() == ISD::SETCC) { CC = Cond.getOperand(2); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/SparcV8/SparcV8ISelDAGToDAG.cpp Makefile SparcV8.h SparcV8TargetMachine.cpp
Changes in directory llvm/lib/Target/SparcV8: SparcV8ISelDAGToDAG.cpp added (r1.1) Makefile updated: 1.11 -> 1.12 SparcV8.h updated: 1.6 -> 1.7 SparcV8TargetMachine.cpp updated: 1.32 -> 1.33 --- Log message: Add the framework for a dag-dag isel --- Diffs of the changes: (+185 -2) Makefile |3 SparcV8.h|2 SparcV8ISelDAGToDAG.cpp | 172 +++ SparcV8TargetMachine.cpp | 10 ++ 4 files changed, 185 insertions(+), 2 deletions(-) Index: llvm/lib/Target/SparcV8/SparcV8ISelDAGToDAG.cpp diff -c /dev/null llvm/lib/Target/SparcV8/SparcV8ISelDAGToDAG.cpp:1.1 *** /dev/null Sat Dec 17 01:47:11 2005 --- llvm/lib/Target/SparcV8/SparcV8ISelDAGToDAG.cpp Sat Dec 17 01:47:01 2005 *** *** 0 --- 1,172 + //===-- SparcV8ISelDAGToDAG.cpp - A dag to dag inst selector for SparcV8 --===// + // + // The LLVM Compiler Infrastructure + // + // This file was developed by Chris Lattner and is distributed under + // the University of Illinois Open Source License. See LICENSE.TXT for details. + // + //===--===// + // + // This file defines an instruction selector for the V8 target + // + //===--===// + + #include "SparcV8.h" + #include "SparcV8TargetMachine.h" + #include "llvm/CodeGen/SelectionDAG.h" + #include "llvm/CodeGen/SelectionDAGISel.h" + #include "llvm/Target/TargetLowering.h" + #include "llvm/Support/Debug.h" + #include + using namespace llvm; + + //===--===// + // TargetLowering Implementation + //===--===// + + namespace { + class SparcV8TargetLowering : public TargetLowering { + public: + SparcV8TargetLowering(TargetMachine &TM); + + virtual std::vector + LowerArguments(Function &F, SelectionDAG &DAG); + virtual std::pair + LowerCallTo(SDOperand Chain, const Type *RetTy, bool isVarArg, + unsigned CC, + bool isTailCall, SDOperand Callee, ArgListTy &Args, + SelectionDAG &DAG); + + virtual SDOperand LowerReturnTo(SDOperand Chain, SDOperand Op, + SelectionDAG &DAG); + virtual SDOperand LowerVAStart(SDOperand Chain, SDOperand VAListP, +Value *VAListV, SelectionDAG &DAG); + virtual std::pair + LowerVAArg(SDOperand Chain, SDOperand VAListP, Value *VAListV, + const Type *ArgTy, SelectionDAG &DAG); + virtual std::pair + LowerFrameReturnAddress(bool isFrameAddr, SDOperand Chain, unsigned Depth, + SelectionDAG &DAG); + }; + } + + SparcV8TargetLowering::SparcV8TargetLowering(TargetMachine &TM) + : TargetLowering(TM) { + + // Set up the register classes. + addRegisterClass(MVT::i32, V8::IntRegsRegisterClass); + addRegisterClass(MVT::f32, V8::FPRegsRegisterClass); + addRegisterClass(MVT::f64, V8::DFPRegsRegisterClass); + + computeRegisterProperties(); + } + + std::vector + SparcV8TargetLowering::LowerArguments(Function &F, SelectionDAG &DAG) { + assert(0 && "Unimp"); + abort(); + } + + std::pair + SparcV8TargetLowering::LowerCallTo(SDOperand Chain, const Type *RetTy, +bool isVarArg, unsigned CC, +bool isTailCall, SDOperand Callee, +ArgListTy &Args, SelectionDAG &DAG) { + assert(0 && "Unimp"); + abort(); + } + + SDOperand SparcV8TargetLowering::LowerReturnTo(SDOperand Chain, SDOperand Op, +SelectionDAG &DAG) { + assert(0 && "Unimp"); + abort(); + } + + SDOperand SparcV8TargetLowering::LowerVAStart(SDOperand Chain, SDOperand VAListP, + Value *VAListV, SelectionDAG &DAG) { + assert(0 && "Unimp"); + abort(); + } + + std::pair + SparcV8TargetLowering::LowerVAArg(SDOperand Chain, SDOperand VAListP, Value *VAListV, + const Type *ArgTy, SelectionDAG &DAG) { + assert(0 && "Unimp"); + abort(); + } + + std::pair + SparcV8TargetLowering::LowerFrameReturnAddress(bool isFrameAddr, SDOperand Chain, unsigned Depth, +SelectionDAG &DAG) { + assert(0 && "Unimp"); + abort(); + } + + //===--===// + // Instruction Selector Implementation + //===--===// + + //======// + /// SparcV8DAGToDAGISel - PPC specific code to select Sparc V8 machine + /// instructions for SelectionDA