Re: [llvm-commits] [LLVMdev] combined arm patch
On 12/5/06, Jim Laskey [EMAIL PROTECTED] wrote: I had to revert these changes. When I did a clean build I was inundated with errors. I'm not sure if I made the cut off time for the mirror. Could you please send me the log? The bootstrap is broken on linux amd64 for some time now, so it is hard for me to do a full test :-( -- Jim Sorry for the problems, Rafael ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
Re: [llvm-commits] [LLVMdev] combined arm patch
Log sent to Rafael offline. On Dec 5, 2006, at 9:56 AM, Rafael EspĂndola wrote: On 12/5/06, Jim Laskey [EMAIL PROTECTED] wrote: I had to revert these changes. When I did a clean build I was inundated with errors. I'm not sure if I made the cut off time for the mirror. Could you please send me the log? The bootstrap is broken on linux amd64 for some time now, so it is hard for me to do a full test :-( -- Jim Sorry for the problems, Rafael smime.p7s Description: S/MIME cryptographic signature ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/test/Regression/Debugger/.cvsignore
Changes in directory llvm/test/Regression/Debugger: .cvsignore updated: 1.2 - 1.3 --- Log message: Ignore the Output directory. --- Diffs of the changes: (+1 -0) .cvsignore |1 + 1 files changed, 1 insertion(+) Index: llvm/test/Regression/Debugger/.cvsignore diff -u /dev/null llvm/test/Regression/Debugger/.cvsignore:1.3 --- /dev/null Tue Dec 5 10:10:26 2006 +++ llvm/test/Regression/Debugger/.cvsignoreTue Dec 5 10:10:16 2006 @@ -0,0 +1 @@ +Output ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/ARM/ARMAsmPrinter.cpp
Changes in directory llvm/lib/Target/ARM: ARMAsmPrinter.cpp updated: 1.29 - 1.30 --- Log message: add support for weak linkage --- Diffs of the changes: (+1 -1) ARMAsmPrinter.cpp |2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/lib/Target/ARM/ARMAsmPrinter.cpp diff -u llvm/lib/Target/ARM/ARMAsmPrinter.cpp:1.29 llvm/lib/Target/ARM/ARMAsmPrinter.cpp:1.30 --- llvm/lib/Target/ARM/ARMAsmPrinter.cpp:1.29 Thu Nov 9 07:58:55 2006 +++ llvm/lib/Target/ARM/ARMAsmPrinter.cpp Tue Dec 5 11:00:17 2006 @@ -128,7 +128,7 @@ break; case Function::WeakLinkage: case Function::LinkOnceLinkage: -assert(0 Not implemented); +O \t.weak\t CurrentFnName \n; break; } EmitAlignment(2, F); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/test/Regression/CodeGen/ARM/weak.ll
Changes in directory llvm/test/Regression/CodeGen/ARM: weak.ll added (r1.1) --- Log message: add support for weak linkage --- Diffs of the changes: (+9 -0) weak.ll |9 + 1 files changed, 9 insertions(+) Index: llvm/test/Regression/CodeGen/ARM/weak.ll diff -c /dev/null llvm/test/Regression/CodeGen/ARM/weak.ll:1.1 *** /dev/null Tue Dec 5 11:00:27 2006 --- llvm/test/Regression/CodeGen/ARM/weak.llTue Dec 5 11:00:17 2006 *** *** 0 --- 1,9 + ; RUN: llvm-upgrade %s | llvm-as | llc -march=arm + ; RUN: llvm-upgrade %s | llvm-as | llc -march=arm | grep .weak + + implementation ; Functions: + + weak uint %f() { + entry: + unreachable + } ___ 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.301 - 1.302 --- Log message: Fix typo noticed by Lauro Ramos Venancio, thanks! --- Diffs of the changes: (+1 -1) X86ISelLowering.cpp |2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/lib/Target/X86/X86ISelLowering.cpp diff -u llvm/lib/Target/X86/X86ISelLowering.cpp:1.301 llvm/lib/Target/X86/X86ISelLowering.cpp:1.302 --- llvm/lib/Target/X86/X86ISelLowering.cpp:1.301 Mon Dec 4 22:01:03 2006 +++ llvm/lib/Target/X86/X86ISelLowering.cpp Tue Dec 5 11:29:40 2006 @@ -5511,7 +5511,7 @@ return make_vectorunsigned(X86::AX, X86::DX, X86::CX, X86::BX, X86::SI, X86::DI, X86::BP, X86::SP, 0); else if (VT == MVT::i8) -return make_vectorunsigned(X86::AL, X86::DL, X86::CL, X86::DL, 0); +return make_vectorunsigned(X86::AL, X86::DL, X86::CL, X86::BL, 0); break; case 'l': // INDEX_REGS if (VT == MVT::i32) ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/test/Regression/CodeGen/ARM/arm-asm.ll
Changes in directory llvm/test/Regression/CodeGen/ARM: arm-asm.ll added (r1.1) --- Log message: add support for the r asm constraint patch by Lauro Ramos Venancio --- Diffs of the changes: (+7 -0) arm-asm.ll |7 +++ 1 files changed, 7 insertions(+) Index: llvm/test/Regression/CodeGen/ARM/arm-asm.ll diff -c /dev/null llvm/test/Regression/CodeGen/ARM/arm-asm.ll:1.1 *** /dev/null Tue Dec 5 11:37:41 2006 --- llvm/test/Regression/CodeGen/ARM/arm-asm.ll Tue Dec 5 11:37:31 2006 *** *** 0 --- 1,7 + ; RUN: llvm-as %s | llc -march=arm + + void %frame_dummy() { + entry: + %tmp1 = tail call void (sbyte*)* (void (sbyte*)*)* asm , =r,0,~{dirflag},~{fpsr},~{flags}( void (sbyte*)* null ) + ret void + } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp
Changes in directory llvm/lib/Target/ARM: ARMISelDAGToDAG.cpp updated: 1.85 - 1.86 --- Log message: add support for the r asm constraint patch by Lauro Ramos Venancio --- Diffs of the changes: (+27 -0) ARMISelDAGToDAG.cpp | 27 +++ 1 files changed, 27 insertions(+) Index: llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp diff -u llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:1.85 llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:1.86 --- llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:1.85Thu Nov 9 07:58:55 2006 +++ llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp Tue Dec 5 11:37:31 2006 @@ -18,6 +18,7 @@ #include llvm/Function.h #include llvm/Constants.h #include llvm/Intrinsics.h +#include llvm/ADT/VectorExtras.h #include llvm/CodeGen/MachineFrameInfo.h #include llvm/CodeGen/MachineFunction.h #include llvm/CodeGen/MachineInstrBuilder.h @@ -37,6 +38,9 @@ ARMTargetLowering(TargetMachine TM); virtual SDOperand LowerOperation(SDOperand Op, SelectionDAG DAG); virtual const char *getTargetNodeName(unsigned Opcode) const; +std::vectorunsigned +getRegClassForInlineAsmConstraint(const std::string Constraint, + MVT::ValueType VT) const; }; } @@ -200,6 +204,29 @@ } } +std::vectorunsigned ARMTargetLowering:: +getRegClassForInlineAsmConstraint(const std::string Constraint, + MVT::ValueType VT) const { + if (Constraint.size() == 1) { +// FIXME: handling only r regs +switch (Constraint[0]) { +default: break; // Unknown constraint letter + +case 'r': // GENERAL_REGS +case 'R': // LEGACY_REGS + if (VT == MVT::i32) +return make_vectorunsigned(ARM::R0, ARM::R1, ARM::R2, ARM::R3, + ARM::R4, ARM::R5, ARM::R6, ARM::R7, + ARM::R8, ARM::R9, ARM::R10, ARM::R11, + ARM::R12, ARM::R13, ARM::R14, 0); + break; + +} + } + + return std::vectorunsigned(); +} + const char *ARMTargetLowering::getTargetNodeName(unsigned Opcode) const { switch (Opcode) { default: return 0; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/test/Regression/CodeGen/ARM/memfunc.ll
Changes in directory llvm/test/Regression/CodeGen/ARM: memfunc.ll added (r1.1) --- Log message: expand memmove and memcpy --- Diffs of the changes: (+13 -0) memfunc.ll | 13 + 1 files changed, 13 insertions(+) Index: llvm/test/Regression/CodeGen/ARM/memfunc.ll diff -c /dev/null llvm/test/Regression/CodeGen/ARM/memfunc.ll:1.1 *** /dev/null Tue Dec 5 11:57:33 2006 --- llvm/test/Regression/CodeGen/ARM/memfunc.ll Tue Dec 5 11:57:23 2006 *** *** 0 --- 1,13 + ; RUN: llvm-upgrade %s | llvm-as | llc -march=arm + + void %f() { + entry: + call void %llvm.memmove.i32( sbyte* null, sbyte* null, uint 64, uint 0 ) + call void %llvm.memcpy.i32( sbyte* null, sbyte* null, uint 64, uint 0 ) + call void %llvm.memset.i32( sbyte* null, ubyte 64, uint 0, uint 0 ) + unreachable + } + + declare void %llvm.memmove.i32(sbyte*, sbyte*, uint, uint) + declare void %llvm.memcpy.i32(sbyte*, sbyte*, uint, uint) + declare void %llvm.memset.i32(sbyte*, ubyte, uint, uint) ___ 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 X86InstrSSE.td
Changes in directory llvm/lib/Target/X86: X86ISelLowering.cpp updated: 1.303 - 1.304 X86InstrSSE.td updated: 1.172 - 1.173 --- Log message: If we have ScalarSSE, we can select bitconvert into single instructions. This compiles bitcast.ll:test3/test4 into: _test3: movd %xmm0, %eax ret _test4: movd %edi, %xmm0 ret --- Diffs of the changes: (+14 -2) X86ISelLowering.cpp |6 -- X86InstrSSE.td | 10 ++ 2 files changed, 14 insertions(+), 2 deletions(-) Index: llvm/lib/Target/X86/X86ISelLowering.cpp diff -u llvm/lib/Target/X86/X86ISelLowering.cpp:1.303 llvm/lib/Target/X86/X86ISelLowering.cpp:1.304 --- llvm/lib/Target/X86/X86ISelLowering.cpp:1.303 Tue Dec 5 12:22:22 2006 +++ llvm/lib/Target/X86/X86ISelLowering.cpp Tue Dec 5 12:45:06 2006 @@ -145,8 +145,10 @@ } // TODO: when we have SSE, these could be more efficient, by using movd/movq. - setOperationAction(ISD::BIT_CONVERT , MVT::f32 , Expand); - setOperationAction(ISD::BIT_CONVERT , MVT::i32 , Expand); + if (!X86ScalarSSE) { +setOperationAction(ISD::BIT_CONVERT , MVT::f32 , Expand); +setOperationAction(ISD::BIT_CONVERT , MVT::i32 , Expand); + } if (Subtarget-is64Bit()) { setOperationAction(ISD::BIT_CONVERT , MVT::f64 , Expand); setOperationAction(ISD::BIT_CONVERT , MVT::i64 , Expand); Index: llvm/lib/Target/X86/X86InstrSSE.td diff -u llvm/lib/Target/X86/X86InstrSSE.td:1.172 llvm/lib/Target/X86/X86InstrSSE.td:1.173 --- llvm/lib/Target/X86/X86InstrSSE.td:1.172Thu Nov 16 17:33:25 2006 +++ llvm/lib/Target/X86/X86InstrSSE.td Tue Dec 5 12:45:06 2006 @@ -1683,6 +1683,11 @@ [(set VR128:$dst, (v4i32 (scalar_to_vector (loadi32 addr:$src]; +def MOVDI2SSrr : PDI0x6E, MRMSrcReg, (ops FR32:$dst, GR32:$src), + movd {$src, $dst|$dst, $src}, + [(set FR32:$dst, (bitconvert GR32:$src))]; + + // SSE2 instructions with XS prefix def MOVQI2PQIrm : I0x7E, MRMSrcMem, (ops VR128:$dst, i64mem:$src), movq {$src, $dst|$dst, $src}, @@ -1724,6 +1729,11 @@ [(store (i32 (vector_extract (v4i32 VR128:$src), (iPTR 0))), addr:$dst)]; +def MOVDSS2DIrr : PDI0x7E, MRMDestReg, (ops GR32:$dst, FR32:$src), + movd {$src, $dst|$dst, $src}, + [(set GR32:$dst, (bitconvert FR32:$src))]; + + // Move to lower bits of a VR128, leaving upper bits alone. // Three operand (but two address) aliases. let isTwoAddress = 1 in { ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/include/llvm/Support/ManagedStatic.h
Changes in directory llvm/include/llvm/Support: ManagedStatic.h updated: 1.1 - 1.2 --- Log message: add a helper to call llvm_shutdown() --- Diffs of the changes: (+8 -0) ManagedStatic.h |8 1 files changed, 8 insertions(+) Index: llvm/include/llvm/Support/ManagedStatic.h diff -u llvm/include/llvm/Support/ManagedStatic.h:1.1 llvm/include/llvm/Support/ManagedStatic.h:1.2 --- llvm/include/llvm/Support/ManagedStatic.h:1.1 Wed Sep 27 19:31:55 2006 +++ llvm/include/llvm/Support/ManagedStatic.h Tue Dec 5 19:01:14 2006 @@ -74,6 +74,14 @@ /// llvm_shutdown - Deallocate and destroy all ManagedStatic variables. void llvm_shutdown(); + +/// llvm_shutdown_obj - This is a simple helper class that calls +/// llvm_shutdown() when it is destroyed. +struct llvm_shutdown_obj { + llvm_shutdown_obj() {} + ~llvm_shutdown_obj() { llvm_shutdown(); } +}; + } #endif ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/tools/llvm-prof/llvm-prof.cpp
Changes in directory llvm/tools/llvm-prof: llvm-prof.cpp updated: 1.28 - 1.29 --- Log message: make all llvm tools call llvm_shutdown when they exit, static'ify some stuff. With this change, I can now move -stats to print when llvm_shutdown is called. --- Diffs of the changes: (+2 -0) llvm-prof.cpp |2 ++ 1 files changed, 2 insertions(+) Index: llvm/tools/llvm-prof/llvm-prof.cpp diff -u llvm/tools/llvm-prof/llvm-prof.cpp:1.28 llvm/tools/llvm-prof/llvm-prof.cpp:1.29 --- llvm/tools/llvm-prof/llvm-prof.cpp:1.28 Wed May 24 14:21:12 2006 +++ llvm/tools/llvm-prof/llvm-prof.cpp Tue Dec 5 19:18:01 2006 @@ -19,6 +19,7 @@ #include llvm/Analysis/ProfileInfoLoader.h #include llvm/Bytecode/Reader.h #include llvm/Support/CommandLine.h +#include llvm/Support/ManagedStatic.h #include llvm/System/Signals.h #include iostream #include iomanip @@ -107,6 +108,7 @@ int main(int argc, char **argv) { + llvm_shutdown_obj X; // Call llvm_shutdown() on exit. try { cl::ParseCommandLineOptions(argc, argv, llvm profile dump decoder\n); sys::PrintStackTraceOnErrorSignal(); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/tools/llvm-db/llvm-db.cpp
Changes in directory llvm/tools/llvm-db: llvm-db.cpp updated: 1.12 - 1.13 --- Log message: make all llvm tools call llvm_shutdown when they exit, static'ify some stuff. With this change, I can now move -stats to print when llvm_shutdown is called. --- Diffs of the changes: (+2 -1) llvm-db.cpp |3 ++- 1 files changed, 2 insertions(+), 1 deletion(-) Index: llvm/tools/llvm-db/llvm-db.cpp diff -u llvm/tools/llvm-db/llvm-db.cpp:1.12 llvm/tools/llvm-db/llvm-db.cpp:1.13 --- llvm/tools/llvm-db/llvm-db.cpp:1.12 Wed Jun 7 19:25:44 2006 +++ llvm/tools/llvm-db/llvm-db.cpp Tue Dec 5 19:18:00 2006 @@ -14,9 +14,9 @@ #include CLIDebugger.h #include llvm/Support/CommandLine.h +#include llvm/Support/ManagedStatic.h #include llvm/System/Signals.h #include iostream - using namespace llvm; namespace { @@ -49,6 +49,7 @@ // main Driver function // int main(int argc, char **argv, char * const *envp) { + llvm_shutdown_obj X; // Call llvm_shutdown() on exit. std::cout NOTE: llvm-db is known useless right now.\n; try { cl::ParseCommandLineOptions(argc, argv, ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/tools/llvm-upgrade/llvm-upgrade.cpp
Changes in directory llvm/tools/llvm-upgrade: llvm-upgrade.cpp updated: 1.3 - 1.4 --- Log message: make all llvm tools call llvm_shutdown when they exit, static'ify some stuff. With this change, I can now move -stats to print when llvm_shutdown is called. --- Diffs of the changes: (+2 -0) llvm-upgrade.cpp |2 ++ 1 files changed, 2 insertions(+) Index: llvm/tools/llvm-upgrade/llvm-upgrade.cpp diff -u llvm/tools/llvm-upgrade/llvm-upgrade.cpp:1.3 llvm/tools/llvm-upgrade/llvm-upgrade.cpp:1.4 --- llvm/tools/llvm-upgrade/llvm-upgrade.cpp:1.3Fri Dec 1 14:26:20 2006 +++ llvm/tools/llvm-upgrade/llvm-upgrade.cppTue Dec 5 19:18:01 2006 @@ -21,6 +21,7 @@ #include ParserInternals.h #include llvm/Support/CommandLine.h +#include llvm/Support/ManagedStatic.h #include llvm/Support/Streams.h #include llvm/Support/SystemUtils.h #include llvm/System/Signals.h @@ -44,6 +45,7 @@ cl::init(false)); int main(int argc, char **argv) { + llvm_shutdown_obj X; // Call llvm_shutdown() on exit. cl::ParseCommandLineOptions(argc, argv, llvm .ll - .bc assembler\n); sys::PrintStackTraceOnErrorSignal(); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/tools/llvm-as/llvm-as.cpp
Changes in directory llvm/tools/llvm-as: llvm-as.cpp updated: 1.48 - 1.49 --- Log message: make all llvm tools call llvm_shutdown when they exit, static'ify some stuff. With this change, I can now move -stats to print when llvm_shutdown is called. --- Diffs of the changes: (+2 -0) llvm-as.cpp |2 ++ 1 files changed, 2 insertions(+) Index: llvm/tools/llvm-as/llvm-as.cpp diff -u llvm/tools/llvm-as/llvm-as.cpp:1.48 llvm/tools/llvm-as/llvm-as.cpp:1.49 --- llvm/tools/llvm-as/llvm-as.cpp:1.48 Tue Nov 28 18:19:40 2006 +++ llvm/tools/llvm-as/llvm-as.cpp Tue Dec 5 19:18:00 2006 @@ -20,6 +20,7 @@ #include llvm/Bytecode/Writer.h #include llvm/Analysis/Verifier.h #include llvm/Support/CommandLine.h +#include llvm/Support/ManagedStatic.h #include llvm/Support/Streams.h #include llvm/Support/SystemUtils.h #include llvm/System/Signals.h @@ -50,6 +51,7 @@ cl::desc(Do not run verifier on input LLVM (dangerous!))); int main(int argc, char **argv) { + llvm_shutdown_obj X; // Call llvm_shutdown() on exit. cl::ParseCommandLineOptions(argc, argv, llvm .ll - .bc assembler\n); sys::PrintStackTraceOnErrorSignal(); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/tools/opt/opt.cpp
Changes in directory llvm/tools/opt: opt.cpp updated: 1.123 - 1.124 --- Log message: make all llvm tools call llvm_shutdown when they exit, static'ify some stuff. With this change, I can now move -stats to print when llvm_shutdown is called. --- Diffs of the changes: (+2 -0) opt.cpp |2 ++ 1 files changed, 2 insertions(+) Index: llvm/tools/opt/opt.cpp diff -u llvm/tools/opt/opt.cpp:1.123 llvm/tools/opt/opt.cpp:1.124 --- llvm/tools/opt/opt.cpp:1.123Fri Dec 1 15:59:37 2006 +++ llvm/tools/opt/opt.cpp Tue Dec 5 19:18:01 2006 @@ -22,6 +22,7 @@ #include llvm/Target/TargetMachine.h #include llvm/Support/PassNameParser.h #include llvm/System/Signals.h +#include llvm/Support/ManagedStatic.h #include llvm/Support/PluginLoader.h #include llvm/Support/Streams.h #include llvm/Support/SystemUtils.h @@ -156,6 +157,7 @@ // main for opt // int main(int argc, char **argv) { + llvm_shutdown_obj X; // Call llvm_shutdown() on exit. try { cl::ParseCommandLineOptions(argc, argv, llvm .bc - .bc modular optimizer and analysis printer \n); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/tools/llvm-extract/llvm-extract.cpp
Changes in directory llvm/tools/llvm-extract: llvm-extract.cpp updated: 1.31 - 1.32 --- Log message: make all llvm tools call llvm_shutdown when they exit, static'ify some stuff. With this change, I can now move -stats to print when llvm_shutdown is called. --- Diffs of the changes: (+2 -0) llvm-extract.cpp |2 ++ 1 files changed, 2 insertions(+) Index: llvm/tools/llvm-extract/llvm-extract.cpp diff -u llvm/tools/llvm-extract/llvm-extract.cpp:1.31 llvm/tools/llvm-extract/llvm-extract.cpp:1.32 --- llvm/tools/llvm-extract/llvm-extract.cpp:1.31 Tue Nov 28 18:19:40 2006 +++ llvm/tools/llvm-extract/llvm-extract.cppTue Dec 5 19:18:01 2006 @@ -19,6 +19,7 @@ #include llvm/Transforms/IPO.h #include llvm/Target/TargetData.h #include llvm/Support/CommandLine.h +#include llvm/Support/ManagedStatic.h #include llvm/Support/Streams.h #include llvm/System/Signals.h #include iostream @@ -47,6 +48,7 @@ cl::value_desc(function)); int main(int argc, char **argv) { + llvm_shutdown_obj X; // Call llvm_shutdown() on exit. try { cl::ParseCommandLineOptions(argc, argv, llvm extractor\n); sys::PrintStackTraceOnErrorSignal(); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/tools/lli/lli.cpp
Changes in directory llvm/tools/lli: lli.cpp updated: 1.60 - 1.61 --- Log message: make all llvm tools call llvm_shutdown when they exit, static'ify some stuff. With this change, I can now move -stats to print when llvm_shutdown is called. --- Diffs of the changes: (+2 -0) lli.cpp |2 ++ 1 files changed, 2 insertions(+) Index: llvm/tools/lli/lli.cpp diff -u llvm/tools/lli/lli.cpp:1.60 llvm/tools/lli/lli.cpp:1.61 --- llvm/tools/lli/lli.cpp:1.60 Thu Sep 14 01:17:09 2006 +++ llvm/tools/lli/lli.cpp Tue Dec 5 19:18:00 2006 @@ -22,6 +22,7 @@ #include llvm/ExecutionEngine/Interpreter.h #include llvm/ExecutionEngine/GenericValue.h #include llvm/Support/CommandLine.h +#include llvm/Support/ManagedStatic.h #include llvm/Support/PluginLoader.h #include llvm/System/Process.h #include llvm/System/Signals.h @@ -56,6 +57,7 @@ // main Driver function // int main(int argc, char **argv, char * const *envp) { + llvm_shutdown_obj X; // Call llvm_shutdown() on exit. try { cl::ParseCommandLineOptions(argc, argv, llvm interpreter dynamic compiler\n); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/tools/gccld/gccld.cpp
Changes in directory llvm/tools/gccld: gccld.cpp updated: 1.113 - 1.114 --- Log message: make all llvm tools call llvm_shutdown when they exit, static'ify some stuff. With this change, I can now move -stats to print when llvm_shutdown is called. --- Diffs of the changes: (+2 -0) gccld.cpp |2 ++ 1 files changed, 2 insertions(+) Index: llvm/tools/gccld/gccld.cpp diff -u llvm/tools/gccld/gccld.cpp:1.113 llvm/tools/gccld/gccld.cpp:1.114 --- llvm/tools/gccld/gccld.cpp:1.113Thu Nov 30 19:05:14 2006 +++ llvm/tools/gccld/gccld.cpp Tue Dec 5 19:18:00 2006 @@ -30,6 +30,7 @@ #include llvm/Transforms/Scalar.h #include llvm/Support/CommandLine.h #include llvm/Support/FileUtilities.h +#include llvm/Support/ManagedStatic.h #include llvm/Support/Streams.h #include llvm/System/Signals.h #include llvm/Support/SystemUtils.h @@ -214,6 +215,7 @@ } int main(int argc, char **argv, char **envp ) { + llvm_shutdown_obj X; // Call llvm_shutdown() on exit. cl::ParseCommandLineOptions(argc, argv, llvm linker for GCC\n); sys::PrintStackTraceOnErrorSignal(); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/CodeGen/RegAllocLinearScan.cpp
Changes in directory llvm/lib/CodeGen: RegAllocLinearScan.cpp updated: 1.133 - 1.134 --- Log message: eliminate fp statistic --- Diffs of the changes: (+3 -3) RegAllocLinearScan.cpp |6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) Index: llvm/lib/CodeGen/RegAllocLinearScan.cpp diff -u llvm/lib/CodeGen/RegAllocLinearScan.cpp:1.133 llvm/lib/CodeGen/RegAllocLinearScan.cpp:1.134 --- llvm/lib/CodeGen/RegAllocLinearScan.cpp:1.133 Fri Dec 1 20:22:01 2006 +++ llvm/lib/CodeGen/RegAllocLinearScan.cpp Tue Dec 5 19:48:55 2006 @@ -37,8 +37,8 @@ namespace { - static Statisticdouble efficiency - (regalloc, Ratio of intervals processed over total intervals); + static Statistic NumIters + (regalloc, Number of iterations performed); static Statistic NumBacktracks (regalloc, Number of times we had to backtrack); @@ -273,7 +273,7 @@ DEBUG(printIntervals(inactive, inactive_.begin(), inactive_.end())); } numIntervals += li_-getNumIntervals(); - efficiency = double(numIterations) / double(numIntervals); + NumIters += numIterations; // expire any remaining active intervals for (IntervalPtrs::reverse_iterator ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Transforms/Hello/Hello.cpp
Changes in directory llvm/lib/Transforms/Hello: Hello.cpp updated: 1.9 - 1.10 --- Log message: counter should be unsigned. --- Diffs of the changes: (+1 -1) Hello.cpp |2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/lib/Transforms/Hello/Hello.cpp diff -u llvm/lib/Transforms/Hello/Hello.cpp:1.9 llvm/lib/Transforms/Hello/Hello.cpp:1.10 --- llvm/lib/Transforms/Hello/Hello.cpp:1.9 Sun Nov 26 03:17:06 2006 +++ llvm/lib/Transforms/Hello/Hello.cpp Tue Dec 5 19:50:04 2006 @@ -21,7 +21,7 @@ using namespace llvm; namespace { - Statisticint HelloCounter(hellocount, + Statistic HelloCounter(hellocount, Counts number of functions greeted); // Hello - The first implementation, without getAnalysisUsage. struct Hello : public FunctionPass { ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Bytecode/Writer/Writer.cpp
Changes in directory llvm/lib/Bytecode/Writer: Writer.cpp updated: 1.133 - 1.134 --- Log message: Fix a CmpInst writing bug by removing merge cruft that I *know* I've removed before. Also, make sure we write the predicate value for Cmp instructions using instruction format 0. --- Diffs of the changes: (+4 -9) Writer.cpp | 13 - 1 files changed, 4 insertions(+), 9 deletions(-) Index: llvm/lib/Bytecode/Writer/Writer.cpp diff -u llvm/lib/Bytecode/Writer/Writer.cpp:1.133 llvm/lib/Bytecode/Writer/Writer.cpp:1.134 --- llvm/lib/Bytecode/Writer/Writer.cpp:1.133 Sun Dec 3 23:23:49 2006 +++ llvm/lib/Bytecode/Writer/Writer.cpp Tue Dec 5 22:27:07 2006 @@ -449,8 +449,8 @@ output_typeid(Type); // Result type unsigned NumArgs = I-getNumOperands(); - output_vbr(NumArgs + (isaCastInst(I) || isaInvokeInst(I) || -isaVAArgInst(I) || Opcode == 58)); + output_vbr(NumArgs + (isaCastInst(I) || isaInvokeInst(I) || +isaCmpInst(I) || isaVAArgInst(I) || Opcode == 58)); if (!isaGetElementPtrInst(I)) { for (unsigned i = 0; i NumArgs; ++i) { @@ -463,6 +463,8 @@ int Slot = Table.getSlot(I-getType()); assert(Slot != -1 Cast return type unknown?); output_typeid((unsigned)Slot); +} else if (isaCmpInst(I)) { + output_vbr(unsigned(castCmpInst(I)-getPredicate())); } else if (isaInvokeInst(I)) { output_vbr(castInvokeInst(I)-getCallingConv()); } else if (Opcode == 58) { // Call escape sequence @@ -793,13 +795,6 @@ } } - // In the weird case of the ICmp or FCmp instructions, we need to also put - // out the instruction's predicate value. We do that here, after the - // instruction's type and operands have been written so we can reuse the - // code above. - if (const CmpInst* CI = dyn_castCmpInst(I)) -output_vbr((unsigned)CI-getPredicate()); - // If we weren't handled before here, we either have a large number of // operands or a large operand index that we are referring to. outputInstructionFormat0(I, Opcode, Table, Type); ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/VMCore/AsmWriter.cpp
Changes in directory llvm/lib/VMCore: AsmWriter.cpp updated: 1.217 - 1.218 --- Log message: wrap long lines --- Diffs of the changes: (+6 -4) AsmWriter.cpp | 10 ++ 1 files changed, 6 insertions(+), 4 deletions(-) Index: llvm/lib/VMCore/AsmWriter.cpp diff -u llvm/lib/VMCore/AsmWriter.cpp:1.217 llvm/lib/VMCore/AsmWriter.cpp:1.218 --- llvm/lib/VMCore/AsmWriter.cpp:1.217 Sun Dec 3 23:19:18 2006 +++ llvm/lib/VMCore/AsmWriter.cpp Tue Dec 5 22:41:52 2006 @@ -873,7 +873,8 @@ // Loop over the symbol table, emitting all named constants. printSymbolTable(M-getSymbolTable()); - for (Module::const_global_iterator I = M-global_begin(), E = M-global_end(); I != E; ++I) + for (Module::const_global_iterator I = M-global_begin(), E = M-global_end(); + I != E; ++I) printGlobal(I); Out \nimplementation ; Functions:\n; @@ -1028,7 +1029,8 @@ // Loop over the arguments, printing them... const FunctionType *FT = F-getFunctionType(); - for(Function::const_arg_iterator I = F-arg_begin(), E = F-arg_end(); I != E; ++I) + for (Function::const_arg_iterator I = F-arg_begin(), E = F-arg_end(); + I != E; ++I) printArgument(I); // Finish printing arguments... @@ -1504,8 +1506,8 @@ SC_DEBUG(begin processModule!\n); // Add all of the global variables to the value table... - for (Module::const_global_iterator I = TheModule-global_begin(), E = TheModule-global_end(); - I != E; ++I) + for (Module::const_global_iterator I = TheModule-global_begin(), + E = TheModule-global_end(); I != E; ++I) createSlot(I); // Add all the functions to the table ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/VMCore/AsmWriter.cpp
Changes in directory llvm/lib/VMCore: AsmWriter.cpp updated: 1.218 - 1.219 --- Log message: clean up some sloppy and inconsistent spacing --- Diffs of the changes: (+46 -46) AsmWriter.cpp | 92 +- 1 files changed, 46 insertions(+), 46 deletions(-) Index: llvm/lib/VMCore/AsmWriter.cpp diff -u llvm/lib/VMCore/AsmWriter.cpp:1.218 llvm/lib/VMCore/AsmWriter.cpp:1.219 --- llvm/lib/VMCore/AsmWriter.cpp:1.218 Tue Dec 5 22:41:52 2006 +++ llvm/lib/VMCore/AsmWriter.cpp Tue Dec 5 23:12:21 2006 @@ -73,10 +73,10 @@ /// @{ public: /// @brief Construct from a module - SlotMachine(const Module *M ); + SlotMachine(const Module *M); /// @brief Construct from a function, starting out in incorp state. - SlotMachine(const Function *F ); + SlotMachine(const Function *F); /// @} /// @name Accessors @@ -119,13 +119,13 @@ /// been inserted already, they get inserted, otherwise they are ignored. /// Either way, the slot number for the Value* is returned. unsigned createSlot(const Value *V); - unsigned createSlot(const Type* Ty); + unsigned createSlot(const Type *Ty); /// Insert a value into the value table. Return the slot number /// that it now occupies. BadThings(TM) will happen if you insert a /// Value that's already been inserted. - unsigned insertValue( const Value *V ); - unsigned insertValue( const Type* Ty); + unsigned insertValue(const Value *V); + unsigned insertValue(const Type *Ty); /// Add all of the module level global variables (and their initializers) /// and function declarations, but not the contents of those functions. @@ -242,7 +242,7 @@ if (!M) return; const SymbolTable ST = M-getSymbolTable(); SymbolTable::type_const_iterator TI = ST.type_begin(); - for (; TI != ST.type_end(); ++TI ) { + for (; TI != ST.type_end(); ++TI) { // As a heuristic, don't insert pointer to primitive types, because // they are used too often to have a single useful name. // @@ -933,7 +933,7 @@ // Print the types. for (SymbolTable::type_const_iterator TI = ST.type_begin(); - TI != ST.type_end(); ++TI ) { + TI != ST.type_end(); ++TI) { Out \t getLLVMName(TI-first) = type ; // Make sure we print out at least one level of the type structure, so @@ -944,7 +944,7 @@ // Print the constants, in type plane order. for (SymbolTable::plane_const_iterator PI = ST.plane_begin(); - PI != ST.plane_end(); ++PI ) { + PI != ST.plane_end(); ++PI) { SymbolTable::value_const_iterator VI = ST.value_begin(PI-first); SymbolTable::value_const_iterator VE = ST.value_end(PI-first); @@ -1417,7 +1417,7 @@ void CachedWriter::setModule(const Module *M) { delete SC; delete AW; if (M) { -SC = new SlotMachine(M ); +SC = new SlotMachine(M); AW = new AssemblyWriter(Out, *SC, M, 0); } else { SC = 0; AW = 0; @@ -1479,8 +1479,8 @@ // Function level constructor. Causes the contents of the Module and the one // function provided to be added to the slot table. -SlotMachine::SlotMachine(const Function *F ) - : TheModule( F ? F-getParent() : 0 ) /// Saved for lazy initialization +SlotMachine::SlotMachine(const Function *F) + : TheModule(F ? F-getParent() : 0) /// Saved for lazy initialization , TheFunction(F) /// Saved for lazy initialization , FunctionProcessed(false) , mMap() @@ -1491,11 +1491,11 @@ } inline void SlotMachine::initialize(void) { - if ( TheModule) { + if (TheModule) { processModule(); TheModule = 0; /// Prevent re-processing next time we're called. } - if ( TheFunction ! FunctionProcessed) { + if (TheFunction ! FunctionProcessed) { processFunction(); } } @@ -1561,7 +1561,7 @@ /// ask for a Value that hasn't previously been inserted with createSlot. /// Types are forbidden because Type does not inherit from Value (any more). int SlotMachine::getSlot(const Value *V) { - assert( V Can't get slot for null Value ); + assert(V Can't get slot for null Value); assert(!isaConstant(V) || isaGlobalValue(V) Can't insert a non-GlobalValue Constant into SlotMachine); @@ -1574,21 +1574,21 @@ // Find the type plane in the module map TypedPlanes::const_iterator MI = mMap.find(VTy); - if ( TheFunction ) { + if (TheFunction) { // Lookup the type in the function map too TypedPlanes::const_iterator FI = fMap.find(VTy); // If there is a corresponding type plane in the function map -if ( FI != fMap.end() ) { +if (FI != fMap.end()) { // Lookup the Value in the function map ValueMap::const_iterator FVI = FI-second.map.find(V); // If the value doesn't exist in the function map - if ( FVI == FI-second.map.end() ) { + if (FVI == FI-second.map.end()) { // Look up the value in the module map. if (MI == mMap.end()) return -1; ValueMap::const_iterator MVI = MI-second.map.find(V); //
[llvm-commits] CVS: llvm/lib/VMCore/AsmWriter.cpp
Changes in directory llvm/lib/VMCore: AsmWriter.cpp updated: 1.219 - 1.220 --- Log message: rename createSlot - getOrCreateSlot. --- Diffs of the changes: (+19 -21) AsmWriter.cpp | 40 +++- 1 files changed, 19 insertions(+), 21 deletions(-) Index: llvm/lib/VMCore/AsmWriter.cpp diff -u llvm/lib/VMCore/AsmWriter.cpp:1.219 llvm/lib/VMCore/AsmWriter.cpp:1.220 --- llvm/lib/VMCore/AsmWriter.cpp:1.219 Tue Dec 5 23:12:21 2006 +++ llvm/lib/VMCore/AsmWriter.cpp Tue Dec 5 23:27:40 2006 @@ -118,8 +118,8 @@ /// Values can be crammed into here at will. If they haven't /// been inserted already, they get inserted, otherwise they are ignored. /// Either way, the slot number for the Value* is returned. - unsigned createSlot(const Value *V); - unsigned createSlot(const Type *Ty); + unsigned getOrCreateSlot(const Value *V); + unsigned getOrCreateSlot(const Type *Ty); /// Insert a value into the value table. Return the slot number /// that it now occupies. BadThings(TM) will happen if you insert a @@ -1495,9 +1495,8 @@ processModule(); TheModule = 0; /// Prevent re-processing next time we're called. } - if (TheFunction ! FunctionProcessed) { + if (TheFunction !FunctionProcessed) processFunction(); - } } // Iterate through all the global variables, functions, and global @@ -1508,12 +1507,12 @@ // Add all of the global variables to the value table... for (Module::const_global_iterator I = TheModule-global_begin(), E = TheModule-global_end(); I != E; ++I) -createSlot(I); +getOrCreateSlot(I); // Add all the functions to the table for (Module::const_iterator I = TheModule-begin(), E = TheModule-end(); I != E; ++I) -createSlot(I); +getOrCreateSlot(I); SC_DEBUG(end processModule!\n); } @@ -1526,17 +1525,16 @@ // Add all the function arguments for(Function::const_arg_iterator AI = TheFunction-arg_begin(), AE = TheFunction-arg_end(); AI != AE; ++AI) -createSlot(AI); +getOrCreateSlot(AI); SC_DEBUG(Inserting Instructions:\n); // Add all of the basic blocks and instructions for (Function::const_iterator BB = TheFunction-begin(), E = TheFunction-end(); BB != E; ++BB) { -createSlot(BB); -for (BasicBlock::const_iterator I = BB-begin(), E = BB-end(); I!=E; ++I) { - createSlot(I); -} +getOrCreateSlot(BB); +for (BasicBlock::const_iterator I = BB-begin(), E = BB-end(); I!=E; ++I) + getOrCreateSlot(I); } FunctionProcessed = true; @@ -1544,10 +1542,10 @@ SC_DEBUG(end processFunction!\n); } -// Clean up after incorporating a function. This is the only way -// to get out of the function incorporation state that affects the -// getSlot/createSlot lock. Function incorporation state is indicated -// by TheFunction != 0. +/// Clean up after incorporating a function. This is the only way to get out of +/// the function incorporation state that affects the +/// getSlot/getOrCreateSlot lock. Function incorporation state is indicated +/// by TheFunction != 0. void SlotMachine::purgeFunction() { SC_DEBUG(begin purgeFunction!\n); fMap.clear(); // Simply discard the function level map @@ -1558,7 +1556,7 @@ } /// Get the slot number for a value. This function will assert if you -/// ask for a Value that hasn't previously been inserted with createSlot. +/// ask for a Value that hasn't previously been inserted with getOrCreateSlot. /// Types are forbidden because Type does not inherit from Value (any more). int SlotMachine::getSlot(const Value *V) { assert(V Can't get slot for null Value); @@ -1619,7 +1617,7 @@ } /// Get the slot number for a value. This function will assert if you -/// ask for a Value that hasn't previously been inserted with createSlot. +/// ask for a Value that hasn't previously been inserted with getOrCreateSlot. /// Types are forbidden because Type does not inherit from Value (any more). int SlotMachine::getSlot(const Type *Ty) { assert(Ty Can't get slot for null Type); @@ -1661,7 +1659,7 @@ // Create a new slot, or return the existing slot if it is already // inserted. Note that the logic here parallels getSlot but instead // of asserting when the Value* isn't found, it inserts the value. -unsigned SlotMachine::createSlot(const Value *V) { +unsigned SlotMachine::getOrCreateSlot(const Value *V) { assert(V Can't insert a null Value to SlotMachine); assert(!isaConstant(V) || isaGlobalValue(V) Can't insert a non-GlobalValue Constant into SlotMachine); @@ -1742,7 +1740,7 @@ // Create a new slot, or return the existing slot if it is already // inserted. Note that the logic here parallels getSlot but instead // of asserting when the Value* isn't found, it inserts the value. -unsigned SlotMachine::createSlot(const Type *Ty) { +unsigned SlotMachine::getOrCreateSlot(const Type *Ty) { assert(Ty Can't insert a null Type to SlotMachine); if (TheFunction) {
[llvm-commits] CVS: llvm/tools/llvm-config/Makefile
Changes in directory llvm/tools/llvm-config: Makefile updated: 1.17 - 1.18 --- Log message: reword message --- Diffs of the changes: (+1 -1) Makefile |2 +- 1 files changed, 1 insertion(+), 1 deletion(-) Index: llvm/tools/llvm-config/Makefile diff -u llvm/tools/llvm-config/Makefile:1.17 llvm/tools/llvm-config/Makefile:1.18 --- llvm/tools/llvm-config/Makefile:1.17Sun Sep 3 20:49:10 2006 +++ llvm/tools/llvm-config/Makefile Tue Dec 5 23:39:18 2006 @@ -38,7 +38,7 @@ # Find all the cyclic dependencies between various LLVM libraries, so we # don't have to process them at runtime. $(FinalLibDeps): find-cycles.pl $(LibDeps) - $(Echo) Finding cyclic dependencies between LLVM libraries. + $(Echo) Checking for cyclic dependencies between LLVM libraries. $(Verb) $(PERL) $ $(LibDeps) $@ || rm -f $@ # Rerun our configure substitutions as needed. ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/VMCore/AsmWriter.cpp
Changes in directory llvm/lib/VMCore: AsmWriter.cpp updated: 1.221 - 1.222 --- Log message: remove more code that was only used by the bc writer --- Diffs of the changes: (+2 -90) AsmWriter.cpp | 92 +- 1 files changed, 2 insertions(+), 90 deletions(-) Index: llvm/lib/VMCore/AsmWriter.cpp diff -u llvm/lib/VMCore/AsmWriter.cpp:1.221 llvm/lib/VMCore/AsmWriter.cpp:1.222 --- llvm/lib/VMCore/AsmWriter.cpp:1.221 Tue Dec 5 23:42:32 2006 +++ llvm/lib/VMCore/AsmWriter.cpp Tue Dec 5 23:50:41 2006 @@ -49,7 +49,6 @@ /// @brief A mapping of Values to slot numbers typedef std::mapconst Value*, unsigned ValueMap; - typedef std::mapconst Type*, unsigned TypeMap; /// @brief A plane with next slot number and ValueMap struct ValuePlane { @@ -58,13 +57,6 @@ ValuePlane() { next_slot = 0; } /// Make sure we start at 0 }; - struct TypePlane { -unsigned next_slot; -TypeMap map; -TypePlane() { next_slot = 0; } -void clear() { map.clear(); next_slot = 0; } - }; - /// @brief The map of planes by Type typedef std::mapconst Type*, ValuePlane TypedPlanes; @@ -86,7 +78,6 @@ /// plane. Its an error to ask for something not in the SlotMachine. /// Its an error to ask for a Type* int getSlot(const Value *V); - int getSlot(const Type*Ty); /// Determine if a Value has a slot or not bool hasSlot(const Value* V); @@ -149,11 +140,9 @@ /// @brief The TypePlanes map for the module level data TypedPlanes mMap; - TypePlane mTypes; /// @brief The TypePlanes map for the function level data TypedPlanes fMap; - TypePlane fTypes; /// @} @@ -168,12 +157,7 @@ static void WriteAsOperandInternal(std::ostream Out, const Value *V, bool PrintName, - std::mapconst Type *, std::string TypeTable, - SlotMachine *Machine); - -static void WriteAsOperandInternal(std::ostream Out, const Type *T, - bool PrintName, - std::mapconst Type *, std::string TypeTable, + std::mapconst Type *, std::string TypeTable, SlotMachine *Machine); static const Module *getModuleFromVal(const Value *V) { @@ -653,26 +637,6 @@ return Out; } -/// WriteAsOperandInternal - Write the name of the specified value out to -/// the specified ostream. This can be useful when you just want to print -/// int %reg126, not the whole instruction that generated it. -/// -static void WriteAsOperandInternal(std::ostream Out, const Type *T, - bool PrintName, - std::mapconst Type*, std::string TypeTable, - SlotMachine *Machine) { - Out ' '; - int Slot; - if (Machine) { -Slot = Machine-getSlot(T); -if (Slot != -1) - Out '%' Slot; -else - Out badref; - } else { -Out T-getDescription(); - } -} /// WriteAsOperand - Write the name of the specified value out to the specified /// ostream. This can be useful when you just want to print int %reg126, not @@ -686,13 +650,9 @@ fillTypeNameTable(Context, TypeNames); - // if (PrintType) -// printTypeInt(Out, V-getType(), TypeNames); - printTypeInt(Out, Ty, TypeNames); - WriteAsOperandInternal(Out, Ty, PrintName, TypeNames, 0); - return Out; + return Out ' ' Ty-getDescription(); } namespace llvm { @@ -1468,10 +1428,6 @@ : TheModule(M)/// Saved for lazy initialization. , TheFunction(0) , FunctionProcessed(false) - , mMap() - , mTypes() - , fMap() - , fTypes() { } @@ -1481,10 +1437,6 @@ : TheModule(F ? F-getParent() : 0) /// Saved for lazy initialization , TheFunction(F) /// Saved for lazy initialization , FunctionProcessed(false) - , mMap() - , mTypes() - , fMap() - , fTypes() { } @@ -1547,7 +1499,6 @@ void SlotMachine::purgeFunction() { SC_DEBUG(begin purgeFunction!\n); fMap.clear(); // Simply discard the function level map - fTypes.clear(); TheFunction = 0; FunctionProcessed = false; SC_DEBUG(end purgeFunction!\n); @@ -1614,45 +1565,6 @@ return MVI-second; } -/// Get the slot number for a value. This function will assert if you -/// ask for a Value that hasn't previously been inserted with getOrCreateSlot. -/// Types are forbidden because Type does not inherit from Value (any more). -int SlotMachine::getSlot(const Type *Ty) { - assert(Ty Can't get slot for null Type); - - // Check for uninitialized state and do lazy initialization - this-initialize(); - - if (TheFunction) { -// Lookup the Type in the function map -TypeMap::const_iterator FTI = fTypes.map.find(Ty); -// If the Type doesn't exist in the function map -if (FTI == fTypes.map.end()) { - TypeMap::const_iterator MTI = mTypes.map.find(Ty); - // If
[llvm-commits] CVS: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp
Changes in directory llvm/lib/Target/Sparc: SparcAsmPrinter.cpp updated: 1.71 - 1.72 --- Log message: These asm printers shouldn't use assembly/writer.h --- Diffs of the changes: (+1 -6) SparcAsmPrinter.cpp |7 +-- 1 files changed, 1 insertion(+), 6 deletions(-) Index: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp diff -u llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.71 llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.72 --- llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.71 Thu Nov 2 14:25:49 2006 +++ llvm/lib/Target/Sparc/SparcAsmPrinter.cpp Wed Dec 6 00:13:25 2006 @@ -17,7 +17,6 @@ #include llvm/Constants.h #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 @@ -241,8 +240,6 @@ O \t.comm name , TD-getTypeSize(C-getType()) , (unsigned)TD-getTypeAlignment(C-getType()); -O \t\t! ; -WriteAsOperand(O, I, true, true, M); O \n; } else { switch (I-getLinkage()) { @@ -284,9 +281,7 @@ O \t.align Align \n; O \t.type name ,#object\n; O \t.size name , Size \n; -O name :\t\t\t\t! ; -WriteAsOperand(O, I, true, true, M); -O \n; +O name :\n; EmitGlobalConstant(C); } } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Target/IA64/IA64AsmPrinter.cpp
Changes in directory llvm/lib/Target/IA64: IA64AsmPrinter.cpp updated: 1.37 - 1.38 --- Log message: These asm printers shouldn't use assembly/writer.h --- Diffs of the changes: (+3 -10) IA64AsmPrinter.cpp | 13 +++-- 1 files changed, 3 insertions(+), 10 deletions(-) Index: llvm/lib/Target/IA64/IA64AsmPrinter.cpp diff -u llvm/lib/Target/IA64/IA64AsmPrinter.cpp:1.37 llvm/lib/Target/IA64/IA64AsmPrinter.cpp:1.38 --- llvm/lib/Target/IA64/IA64AsmPrinter.cpp:1.37Wed Oct 4 21:51:36 2006 +++ llvm/lib/Target/IA64/IA64AsmPrinter.cpp Wed Dec 6 00:13:25 2006 @@ -20,7 +20,6 @@ #include IA64TargetMachine.h #include llvm/Module.h #include llvm/Type.h -#include llvm/Assembly/Writer.h #include llvm/CodeGen/AsmPrinter.h #include llvm/CodeGen/MachineFunctionPass.h #include llvm/Target/TargetAsmInfo.h @@ -282,14 +281,12 @@ if (I-hasInternalLinkage()) { O \t.lcomm name #, TD-getTypeSize(C-getType()) , (1 Align); - O \t\t// ; + O \n; } else { O \t.common name #, TD-getTypeSize(C-getType()) , (1 Align); - O \t\t// ; + O \n; } -WriteAsOperand(O, I, true, true, M); -O \n; } else { switch (I-getLinkage()) { case GlobalValue::LinkOnceLinkage: @@ -326,11 +323,7 @@ EmitAlignment(Align); O \t.type name ,@object\n; O \t.size name , Size \n; -O name :\t\t\t\t// ; -WriteAsOperand(O, I, true, true, M); -O = ; -WriteAsOperand(O, C, false, false, M); -O \n; +O name :\t\t\t\t// *C \n; EmitGlobalConstant(C); } } ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/VMCore/AsmWriter.cpp
Changes in directory llvm/lib/VMCore: AsmWriter.cpp updated: 1.223 - 1.224 --- Log message: The hasSlot methods are gone. Remove the 'PrintName' argument to WriteAsOperand, as it is always true. Only call getOrCreateSlot on things that are valid. --- Diffs of the changes: (+20 -25) AsmWriter.cpp | 45 - 1 files changed, 20 insertions(+), 25 deletions(-) Index: llvm/lib/VMCore/AsmWriter.cpp diff -u llvm/lib/VMCore/AsmWriter.cpp:1.223 llvm/lib/VMCore/AsmWriter.cpp:1.224 --- llvm/lib/VMCore/AsmWriter.cpp:1.223 Tue Dec 5 23:55:41 2006 +++ llvm/lib/VMCore/AsmWriter.cpp Wed Dec 6 00:15:43 2006 @@ -79,10 +79,6 @@ /// Its an error to ask for a Type* int getSlot(const Value *V); - /// Determine if a Value has a slot or not - bool hasSlot(const Value* V); - bool hasSlot(const Type* Ty); - /// @} /// @name Mutators /// @{ @@ -622,8 +618,7 @@ /// the whole instruction that generated it. /// std::ostream llvm::WriteAsOperand(std::ostream Out, const Value *V, - bool PrintType, bool PrintName, - const Module *Context) { + bool PrintType, const Module *Context) { std::mapconst Type *, std::string TypeNames; if (Context == 0) Context = getModuleFromVal(V); @@ -633,7 +628,7 @@ if (PrintType) printTypeInt(Out, V-getType(), TypeNames); - WriteAsOperandInternal(Out, V, PrintName, TypeNames, 0); + WriteAsOperandInternal(Out, V, true, TypeNames, 0); return Out; } @@ -1437,15 +1432,17 @@ void SlotMachine::processModule() { SC_DEBUG(begin processModule!\n); - // Add all of the global variables to the value table... + // Add all of the unnamed global variables to the value table. for (Module::const_global_iterator I = TheModule-global_begin(), E = TheModule-global_end(); I != E; ++I) -getOrCreateSlot(I); +if (!I-hasName()) + getOrCreateSlot(I); - // Add all the functions to the table + // Add all the unnamed functions to the table. for (Module::const_iterator I = TheModule-begin(), E = TheModule-end(); I != E; ++I) -getOrCreateSlot(I); +if (!I-hasName()) + getOrCreateSlot(I); SC_DEBUG(end processModule!\n); } @@ -1455,19 +1452,22 @@ void SlotMachine::processFunction() { SC_DEBUG(begin processFunction!\n); - // Add all the function arguments + // Add all the function arguments with no names. for(Function::const_arg_iterator AI = TheFunction-arg_begin(), AE = TheFunction-arg_end(); AI != AE; ++AI) -getOrCreateSlot(AI); +if (!AI-hasName()) + getOrCreateSlot(AI); SC_DEBUG(Inserting Instructions:\n); - // Add all of the basic blocks and instructions + // Add all of the basic blocks and instructions with no names. for (Function::const_iterator BB = TheFunction-begin(), E = TheFunction-end(); BB != E; ++BB) { -getOrCreateSlot(BB); -for (BasicBlock::const_iterator I = BB-begin(), E = BB-end(); I!=E; ++I) - getOrCreateSlot(I); +if (!BB-hasName()) + getOrCreateSlot(BB); +for (BasicBlock::const_iterator I = BB-begin(), E = BB-end(); I != E; ++I) + if (I-getType() != Type::VoidTy !I-hasName()) +getOrCreateSlot(I); } FunctionProcessed = true; @@ -1553,16 +1553,11 @@ // inserted. Note that the logic here parallels getSlot but instead // of asserting when the Value* isn't found, it inserts the value. unsigned SlotMachine::getOrCreateSlot(const Value *V) { - assert(V Can't insert a null Value to SlotMachine); + const Type* VTy = V-getType(); + assert(VTy != Type::VoidTy !V-hasName() Doesn't need a slot!); assert(!isaConstant(V) || isaGlobalValue(V) Can't insert a non-GlobalValue Constant into SlotMachine); - const Type* VTy = V-getType(); - - // Just ignore void typed things or things with names. - if (VTy == Type::VoidTy || V-hasName()) -return 0; // FIXME: Wrong return value! - // Look up the type plane for the Value's type from the module map TypedPlanes::const_iterator MI = mMap.find(VTy); @@ -1618,7 +1613,7 @@ } } - // N.B. Can only get here if !TheFunction + // N.B. Can only get here if TheFunction == 0 // If the module map's type plane is not for the Value's type if (MI != mMap.end()) { ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Analysis/AliasAnalysisCounter.cpp AliasAnalysisEvaluator.cpp CFGPrinter.cpp Trace.cpp
Changes in directory llvm/lib/Analysis: AliasAnalysisCounter.cpp updated: 1.16 - 1.17 AliasAnalysisEvaluator.cpp updated: 1.29 - 1.30 CFGPrinter.cpp updated: 1.19 - 1.20 Trace.cpp updated: 1.3 - 1.4 --- Log message: Remove the 'printname' argument to WriteAsOperand. It is always true, and passing false would make the asmprinter fail anyway. --- Diffs of the changes: (+9 -9) AliasAnalysisCounter.cpp |6 +++--- AliasAnalysisEvaluator.cpp |6 +++--- CFGPrinter.cpp |4 ++-- Trace.cpp |2 +- 4 files changed, 9 insertions(+), 9 deletions(-) Index: llvm/lib/Analysis/AliasAnalysisCounter.cpp diff -u llvm/lib/Analysis/AliasAnalysisCounter.cpp:1.16 llvm/lib/Analysis/AliasAnalysisCounter.cpp:1.17 --- llvm/lib/Analysis/AliasAnalysisCounter.cpp:1.16 Tue Nov 28 16:46:12 2006 +++ llvm/lib/Analysis/AliasAnalysisCounter.cpp Wed Dec 6 00:16:21 2006 @@ -135,9 +135,9 @@ if (PrintAll || (PrintAllFailures R == MayAlias)) { llvm_cerr AliasString :\t; llvm_cerr [ V1Size B] ; -WriteAsOperand(std::cerr, V1, true, true, M) , ; +WriteAsOperand(std::cerr, V1, true, M) , ; llvm_cerr [ V2Size B] ; -WriteAsOperand(std::cerr, V2, true, true, M) \n; +WriteAsOperand(std::cerr, V2, true, M) \n; } return R; @@ -159,7 +159,7 @@ if (PrintAll || (PrintAllFailures R == ModRef)) { llvm_cerr MRString : Ptr: ; llvm_cerr [ Size B] ; -WriteAsOperand(std::cerr, P, true, true, M); +WriteAsOperand(std::cerr, P, true, M); llvm_cerr \t- *CS.getInstruction(); } return R; Index: llvm/lib/Analysis/AliasAnalysisEvaluator.cpp diff -u llvm/lib/Analysis/AliasAnalysisEvaluator.cpp:1.29 llvm/lib/Analysis/AliasAnalysisEvaluator.cpp:1.30 --- llvm/lib/Analysis/AliasAnalysisEvaluator.cpp:1.29 Tue Nov 28 16:46:12 2006 +++ llvm/lib/Analysis/AliasAnalysisEvaluator.cppWed Dec 6 00:16:21 2006 @@ -80,8 +80,8 @@ Module *M) { if (P) { llvm_cerr Msg :\t; -WriteAsOperand(std::cerr, V1, true, true, M) , ; -WriteAsOperand(std::cerr, V2, true, true, M) \n; +WriteAsOperand(std::cerr, V1, true, M) , ; +WriteAsOperand(std::cerr, V2, true, M) \n; } } @@ -90,7 +90,7 @@ Module *M) { if (P) { llvm_cerr Msg : Ptr: ; -WriteAsOperand(std::cerr, Ptr, true, true, M); +WriteAsOperand(std::cerr, Ptr, true, M); llvm_cerr \t- *I; } } Index: llvm/lib/Analysis/CFGPrinter.cpp diff -u llvm/lib/Analysis/CFGPrinter.cpp:1.19 llvm/lib/Analysis/CFGPrinter.cpp:1.20 --- llvm/lib/Analysis/CFGPrinter.cpp:1.19 Tue Nov 28 16:46:12 2006 +++ llvm/lib/Analysis/CFGPrinter.cppWed Dec 6 00:16:21 2006 @@ -50,12 +50,12 @@ std::ostringstream Out; if (CFGOnly) { - WriteAsOperand(Out, Node, false, true); + WriteAsOperand(Out, Node, false); return Out.str(); } if (Node-getName().empty()) { - WriteAsOperand(Out, Node, false, true); + WriteAsOperand(Out, Node, false); Out :; } Index: llvm/lib/Analysis/Trace.cpp diff -u llvm/lib/Analysis/Trace.cpp:1.3 llvm/lib/Analysis/Trace.cpp:1.4 --- llvm/lib/Analysis/Trace.cpp:1.3 Tue Nov 28 16:46:12 2006 +++ llvm/lib/Analysis/Trace.cpp Wed Dec 6 00:16:21 2006 @@ -38,7 +38,7 @@ for (const_iterator i = begin(), e = end(); i != e; ++i) { O ; ; if (O.stream()) - WriteAsOperand(*O.stream(), *i, true, true, getModule()); + WriteAsOperand(*O.stream(), *i, true, getModule()); O \n; } O ; Trace parent function: \n *F; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/lib/Analysis/DataStructure/Printer.cpp
Changes in directory llvm/lib/Analysis/DataStructure: Printer.cpp updated: 1.88 - 1.89 --- Log message: Remove the 'printname' argument to WriteAsOperand. It is always true, and passing false would make the asmprinter fail anyway. --- Diffs of the changes: (+2 -2) Printer.cpp |4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) Index: llvm/lib/Analysis/DataStructure/Printer.cpp diff -u llvm/lib/Analysis/DataStructure/Printer.cpp:1.88 llvm/lib/Analysis/DataStructure/Printer.cpp:1.89 --- llvm/lib/Analysis/DataStructure/Printer.cpp:1.88Tue Nov 28 18:19:40 2006 +++ llvm/lib/Analysis/DataStructure/Printer.cpp Wed Dec 6 00:16:21 2006 @@ -81,7 +81,7 @@ if (G) GlobalECs = G-getGlobalECs(); for (unsigned i = 0, e = N-getGlobalsList().size(); i != e; ++i) { -WriteAsOperand(OS, N-getGlobalsList()[i], false, true, M); +WriteAsOperand(OS, N-getGlobalsList()[i], false, M); // Figure out how many globals are equivalent to this one. if (GlobalECs) { @@ -157,7 +157,7 @@ for (DSGraph::ScalarMapTy::const_iterator I = VM.begin(); I != VM.end();++I) if (!isaGlobalValue(I-first)) { std::stringstream OS; -WriteAsOperand(OS, I-first, false, true, CurMod); +WriteAsOperand(OS, I-first, false, CurMod); GW.emitSimpleNode(I-first, , OS.str()); // Add edge from return node to real destination ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] CVS: llvm/docs/LangRef.html
Changes in directory llvm/docs: LangRef.html updated: 1.177 - 1.178 --- Log message: Tie the ordered/unordered predicate descriptions to their meaning wrt to QNAN values. --- Diffs of the changes: (+3 -1) LangRef.html |4 +++- 1 files changed, 3 insertions(+), 1 deletion(-) Index: llvm/docs/LangRef.html diff -u llvm/docs/LangRef.html:1.177 llvm/docs/LangRef.html:1.178 --- llvm/docs/LangRef.html:1.177Mon Dec 4 15:29:24 2006 +++ llvm/docs/LangRef.html Wed Dec 6 01:08:07 2006 @@ -3152,6 +3152,8 @@ littuno/tt: unordered (either nans)/li litttrue/tt: no comparison, always returns true/li /ol +pIn the preceding, iordered/i means that neither operand is a QNAN while +iunordered/i means that either operand may be a QNAN./p pThe ttval1/tt and ttval2/tt arguments must be of a href=#t_floatingfloating point/a, or a a href=#t_packedpacked/a floating point type. They must have identical types./p @@ -4433,7 +4435,7 @@ a href=mailto:[EMAIL PROTECTED]Chris Lattner/abr a href=http://llvm.org;The LLVM Compiler Infrastructure/abr - Last modified: $Date: 2006/12/04 21:29:24 $ + Last modified: $Date: 2006/12/06 07:08:07 $ /address /body /html ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits