- Apr 05, 2010
-
-
Chris Lattner authored
llvm-svn: 100414
-
- Apr 03, 2010
-
-
David Greene authored
Ok, third time's the charm. No changes from last time except the CMake source addition. Apparently the buildbots were wrong about failures. --- Add some switches helpful for debugging: -print-before=<Pass Name> Dump IR before running pass <Pass Name>. -print-before-all Dump IR before running each pass. -print-after-all Dump IR after running each pass. These are helpful when tracking down a miscompilation. It is easy to get IR dumps and do diffs on them, etc. To make this work well, add a new getPrinterPass API to Pass so that each kind of pass (ModulePass, FunctionPass, etc.) can create a Pass suitable for dumping out the kind of object the Pass works on. llvm-svn: 100249
-
- Apr 02, 2010
-
-
Chris Lattner authored
representation. This eliminates the 'DILocation' MDNodes for file/line/col tuples from -O0 -g codegen. This remove the old DebugLoc class, making it a typedef for DebugLoc, I'll rename NewDebugLoc next. I didn't update the JIT to use the new apis, so it will continue to work, but be as slow as before. Someone should eventually do this or, better yet, rip out the JIT debug info stuff and build the JIT on top of MC. llvm-svn: 100209
-
Evan Cheng authored
llvm-svn: 100207
-
David Greene authored
Let's try this again. Re-apply 100143 including an apparent missing <string> include. For some reason the buildbot choked on this while my builds did not. It's probably due to a difference in system headers. --- Add some switches helpful for debugging: -print-before=<Pass Name> Dump IR before running pass <Pass Name>. -print-before-all Dump IR before running each pass. -print-after-all Dump IR after running each pass. These are helpful when tracking down a miscompilation. It is easy to get IR dumps and do diffs on them, etc. To make this work well, add a new getPrinterPass API to Pass so that each kind of pass (ModulePass, FunctionPass, etc.) can create a Pass suitable for dumping out the kind of object the Pass works on. llvm-svn: 100204
-
Eric Christopher authored
llvm-svn: 100146
-
David Greene authored
Add some switches helpful for debugging: -print-before=<Pass Name> Dump IR before running pass <Pass Name>. -print-before-all Dump IR before running each pass. -print-after-all Dump IR after running each pass. These are helpful when tracking down a miscompilation. It is easy to get IR dumps and do diffs on them, etc. To make this work well, add a new getPrinterPass API to Pass so that each kind of pass (ModulePass, FunctionPass, etc.) can create a Pass suitable for dumping out the kind of object the Pass works on. llvm-svn: 100143
-
- Mar 30, 2010
-
-
Chris Lattner authored
create symbols. It is extremely error prone and a source of a lot of the remaining integrated assembler bugs on x86-64. This fixes rdar://7807601. llvm-svn: 99902
-
- Mar 19, 2010
-
-
Bob Wilson authored
disabled for several months (since svn r88806) and no one noticed. My fix for pr6543 yesterday reenabled it, but broke the ARM port's code for using TBB/TBH. Rather than adding a target hook to disable merging for Thumb2 only, I'm just taking this out. It is not common to have identical jump tables, the code we used to merge them was O(N^2), and it only helps code size, not performance. llvm-svn: 98977
-
- Mar 18, 2010
-
-
Dan Gohman authored
RecyclingAllocator to allow client code to be simpler, and simplify several clients. llvm-svn: 98847
-
Bob Wilson authored
always create a new jump table. The intention was to avoid merging jump tables in SelectionDAGBuilder, and to wait for the branch folding pass to merge tables. Unfortunately, the same getJumpTableIndex() method is also used to merge tables in branch folding, so as a result of this change branch tables are never merged. Worse, the branch folding code is expecting getJumpTableIndex to always return the index of an existing table, but with this change, it never does so. In at least some cases, e.g., pr6543, this creates references to non-existent tables. I've fixed the problem by adding a new createJumpTableIndex function, which will always create a new table, and I've changed getJumpTableIndex to only look at existing tables. llvm-svn: 98845
-
- Mar 13, 2010
-
-
Chris Lattner authored
and passing off ownership to AsmPrinter. Now MachineModuleInfo creates it and owns it by value. This allows us to use MCSymbols more consistently throughout the rest of the code generator, and simplifies a bit of code. This also allows MachineFunction to keep an MCContext reference handy, and cleans up the TargetRegistry interfaces for AsmPrinters. llvm-svn: 98450
-
- Mar 11, 2010
-
-
Richard Osborne authored
are inside the function by the target at the point of use. llvm-svn: 98255
-
- Mar 10, 2010
-
-
Chris Lattner authored
llvm-svn: 98124
-
- Feb 19, 2010
-
-
Charles Davis authored
Also, FileCheck'ize a test. llvm-svn: 96686
-
- Feb 10, 2010
-
-
Dan Gohman authored
llvm-svn: 95781
-
- Jan 27, 2010
-
-
Chandler Carruth authored
llvm-svn: 94673
-
- Jan 26, 2010
-
-
Chris Lattner authored
which is more convenient, and change getPICJumpTableRelocBaseExpr to take a MachineFunction to match. Next, move the X86 code that create a PICBase symbol to X86TargetLowering::getPICBaseSymbol from X86MCInstLower::GetPICBaseSymbol, which was an asmprinter specific library. This eliminates a 'gross hack', and allows us to implement X86ISelLowering::getPICJumpTableRelocBaseExpr which now calls it. This in turn allows us to eliminate the X86AsmPrinter::printPICJumpTableSetLabel method, which was the only overload of printPICJumpTableSetLabel. llvm-svn: 94526
-
Chris Lattner authored
use it to implement the default TargetLowering::getPICJumpTableRelocBaseExpr llvm-svn: 94523
-
Chris Lattner authored
MachineFunctionAnalysis dole them out, instead of having AsmPrinter do both. Have the AsmPrinter::SetupMachineFunction method set the 'AsmPrinter::MF' variable. llvm-svn: 94509
-
Chris Lattner authored
jump table entries. llvm-svn: 94505
-
Chris Lattner authored
1. MachineJumpTableInfo is now created lazily for a function the first time it actually makes a jump table instead of for every function. 2. The encoding of jump table entries is now described by the MachineJumpTableInfo::JTEntryKind enum. This enum is determined by the TLI::getJumpTableEncoding() hook, instead of by lots of code scattered throughout the compiler that "knows" that jump table entries are always 32-bits in pic mode (for example). 3. The size and alignment of jump table entries is now calculated based on their kind, instead of at machinefunction creation time. Future work includes using the EntryKind in more places in the compiler, eliminating other logic that "knows" the layout of jump tables in various situations. llvm-svn: 94470
-
- Jan 19, 2010
-
-
Devang Patel authored
llvm-svn: 93864
-
- Jan 16, 2010
-
-
Devang Patel authored
llvm-svn: 93630
-
- Jan 05, 2010
-
-
David Greene authored
Change errs() to dbgs(). llvm-svn: 92544
-
- Dec 03, 2009
-
-
Chris Lattner authored
Patch by Howard Hinnant! llvm-svn: 90365
-
- Nov 30, 2009
-
-
Tobias Grosser authored
llvm-svn: 90134
-
Tobias Grosser authored
llvm-svn: 90133
-
- Nov 14, 2009
-
-
Jim Grosbach authored
merges, and until then, it's useful to keep the tables separate for ease of manipulation. llvm-svn: 88806
-
Jim Grosbach authored
llvm-svn: 88804
-
- Nov 12, 2009
-
-
David Greene authored
Add a bool flag to StackObjects telling whether they reference spill slots. The AsmPrinter will use this information to determine whether to print a spill/reload comment. Remove default argument values. It's too easy to pass a wrong argument value when multiple arguments have default values. Make everything explicit to trap bugs early. Update all targets to adhere to the new interfaces.. llvm-svn: 87022
-
- Oct 31, 2009
-
-
Dan Gohman authored
- Be consistent when referring to MachineBasicBlocks: BB#0. - Be consistent when referring to virtual registers: %reg1024. - Be consistent when referring to unknown physical registers: %physreg10. - Be consistent when referring to known physical registers: %RAX - Be consistent when referring to register 0: %reg0 - Be consistent when printing alignments: align=16 - Print jump table contents. - Don't print host addresses, in general. - and various other cleanups. llvm-svn: 85682
-
Dan Gohman authored
llvm-svn: 85653
-
- Oct 28, 2009
-
-
Dan Gohman authored
if they have compatible encodings. llvm-svn: 85359
-
- Oct 25, 2009
-
-
Nick Lewycky authored
VISIBILITY_HIDDEN removal. llvm-svn: 85043
-
Nick Lewycky authored
Chris claims we should never have visibility_hidden inside any .cpp file but that's still not true even after this commit. llvm-svn: 85042
-
- Oct 09, 2009
-
-
Dan Gohman authored
information when unfolding memory references. llvm-svn: 83656
-
- Oct 01, 2009
-
-
Devang Patel authored
llvm-svn: 83181
-
- Sep 25, 2009
-
-
Dan Gohman authored
- Allocate MachineMemOperands and MachineMemOperand lists in MachineFunctions. This eliminates MachineInstr's std::list member and allows the data to be created by isel and live for the remainder of codegen, avoiding a lot of copying and unnecessary translation. This also shrinks MemSDNode. - Delete MemOperandSDNode. Introduce MachineSDNode which has dedicated fields for MachineMemOperands. - Change MemSDNode to have a MachineMemOperand member instead of its own fields with the same information. This introduces some redundancy, but it's more consistent with what MachineInstr will eventually want. - Ignore alignment when searching for redundant loads for CSE, but remember the greatest alignment. Target-specific code which previously used MemOperandSDNodes with generic SDNodes now use MemIntrinsicSDNodes, with opcodes in a designated range so that the SelectionDAG framework knows that MachineMemOperand information is available. llvm-svn: 82794
-
- Sep 16, 2009
-
-
Chris Lattner authored
move MachineFunctionInfo virtual method out of line to give it a home. llvm-svn: 81940
-