- Apr 17, 2010
-
-
Dan Gohman authored
const_casts, and it reinforces the design of the Target classes being immutable. SelectionDAGISel::IsLegalToFold is now a static member function, because PIC16 uses it in an unconventional way. There is more room for API cleanup here. And PIC16's AsmPrinter no longer uses TargetLowering. llvm-svn: 101635
-
- Mar 02, 2010
-
-
Chris Lattner authored
DoInstructionSelection. Inline "SelectRoot" into it from DAGISelHeader. Sink some other stuff out of DAGISelHeader into SDISel. Eliminate the various 'Indent' stuff from various targets, which dates to when isel was recursive. 17 files changed, 114 insertions(+), 430 deletions(-) llvm-svn: 97555
-
- Feb 09, 2010
-
-
Chris Lattner authored
into TargetOpcodes.h. #include the new TargetOpcodes.h into MachineInstr. Add new inline accessors (like isPHI()) to MachineInstr, and start using them throughout the codebase. llvm-svn: 95687
-
- Feb 01, 2010
-
-
Bruno Cardoso Lopes authored
llvm-svn: 94977
-
- Jan 19, 2010
-
-
Bruno Cardoso Lopes authored
in use by Mips. llvm-svn: 93897
-
Bruno Cardoso Lopes authored
the instruction to load those args removed. This fix PR6071 llvm-svn: 93880
-
Bruno Cardoso Lopes authored
llvm-svn: 93876
-
- Jan 05, 2010
-
-
Dan Gohman authored
clear what information these functions are actually using. This is also a micro-optimization, as passing a SDNode * around is simpler than passing a { SDNode *, int } by value or reference. llvm-svn: 92564
-
- Nov 25, 2009
-
-
Bruno Cardoso Lopes authored
llvm-svn: 89863
-
Bruno Cardoso Lopes authored
using two swc/lwc instead of sdc/ldc. llvm-svn: 89826
-
- Nov 19, 2009
-
-
Bruno Cardoso Lopes authored
- Support mips1 like load/store of doubles: Instead of: sdc $f0, X($3) Generate: swc $f0, X($3) swc $f1, X+4($3) llvm-svn: 89322
-
- Nov 16, 2009
-
-
Bruno Cardoso Lopes authored
- Add a smarter constant pool loading, instead of: lui $2, %hi($CPI1_0) addiu $2, $2, %lo($CPI1_0) lwc1 $f0, 0($2) Generate: lui $2, %hi($CPI1_0) lwc1 $f0, %lo($CPI1_0)($2) llvm-svn: 88886
-
- Nov 13, 2009
-
-
Bruno Cardoso Lopes authored
because the testcase is triggering one more bug. llvm-svn: 88674
-
- Nov 05, 2009
-
-
Dan Gohman authored
llvm-svn: 86149
-
- 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
-
- Sep 25, 2009
-
-
Dan Gohman authored
naming scheme used in SelectionDAG, where there are multiple kinds of "target" nodes, but "machine" nodes are nodes which represent a MachineInstr. llvm-svn: 82790
-
- Sep 01, 2009
-
-
Bruno Cardoso Lopes authored
Add MO flags to simplify the printing of relocations. Remove the support for printing large code model relocs (which aren't supported anyway). llvm-svn: 80691
-
- Aug 27, 2009
-
-
Bruno Cardoso Lopes authored
llvm-svn: 80280
-
Bruno Cardoso Lopes authored
Add MO flags to simplify the printing of relocations. Remove the support for printing large code model relocs (which aren't supported anyway). llvm-svn: 80278
-
- Aug 23, 2009
-
-
Daniel Dunbar authored
- The world needs better C++ refactoring tools, can I get an Amen!? llvm-svn: 79843
-
Chris Lattner authored
llvm-svn: 79833
-
- Aug 11, 2009
-
-
Owen Anderson authored
the latter is capable of representing either a primitive or an extended type. llvm-svn: 78713
-
Owen Anderson authored
llvm-svn: 78610
-
- Aug 01, 2009
-
-
Dan Gohman authored
llvm-svn: 77768
-
- Jul 08, 2009
-
-
Torok Edwin authored
Finish converting lib/Target. llvm-svn: 75043
-
- Jun 03, 2009
-
-
Dan Gohman authored
carry GlobalBaseReg, and GlobalRetAddr too in Alpha's case. This eliminates the need for them to search through the MachineRegisterInfo livein list in order to identify these virtual registers. EmitLiveInCopies is now the only user of the virtual register portion of MachineRegisterInfo's livein data. llvm-svn: 72802
-
- Jun 02, 2009
-
-
Dale Johannesen authored
llvm-svn: 72705
-
- Feb 05, 2009
-
-
Dale Johannesen authored
Adjust callers. llvm-svn: 63789
-
- Jan 15, 2009
-
-
Dan Gohman authored
and into the ScheduleDAGInstrs class, so that they don't get destructed and re-constructed for each block. This fixes a compile-time hot spot in the post-pass scheduler. To help facilitate this, tidy and do some minor reorganization in the scheduler constructor functions. llvm-svn: 62275
-
- Dec 14, 2008
-
-
Chris Lattner authored
llvm-svn: 61014
-
- Nov 05, 2008
-
-
Dan Gohman authored
priority function. Instead, just iterate over the AllNodes list, which is already in topological order. This eliminates a fair amount of bookkeeping, and speeds up the isel phase by about 15% on many testcases. The impact on most targets is that AddToISelQueue calls can be simply removed. In the x86 target, there are two additional notable changes. The rule-bending AND+SHIFT optimization in MatchAddress that creates new pre-isel nodes during isel is now a little more verbose, but more robust. Instead of either creating an invalid DAG or creating an invalid topological sort, as it has historically done, it can now just insert the new nodes into the node list at a position where they will be consistent with the topological ordering. Also, the address-matching code has logic that checked to see if a node was "already selected". However, when a node is selected, it has all its uses taken away via ReplaceAllUsesWith or equivalent, so it won't recieve any further visits from MatchAddress. This code is now removed. llvm-svn: 58748
-
- Oct 27, 2008
-
-
David Greene authored
Have TableGen emit setSubgraphColor calls under control of a -gen-debug flag. Then in a debugger developers can set breakpoints at these calls to see waht is about to be selected and what the resulting subgraph looks like. This really helps when debugging instruction selection. llvm-svn: 58278
-
- Oct 16, 2008
-
-
Dan Gohman authored
llvm-svn: 57649
-
- Oct 03, 2008
-
-
Dan Gohman authored
Instead, just create one, and make sure everything that needs it can access it. Previously most of the SelectionDAGISel subclasses all had their own TargetLowering object, which was redundant with the TargetLowering object in the TargetMachine subclasses, except on Sparc, where SparcTargetMachine didn't have a TargetLowering object. Change Sparc to work more like the other targets here. llvm-svn: 57016
-
- Sep 16, 2008
-
-
Bill Wendling authored
Apologies for the thrashing. llvm-svn: 56251
-
Bill Wendling authored
- Add linkage to SymbolSDNode (default to external). - Change ISD::ExternalSymbol to ISD::Symbol. - Change ISD::TargetExternalSymbol to ISD::TargetSymbol These changes pave the way to allowing SymbolSDNodes with non-external linkage. llvm-svn: 56249
-
- Sep 12, 2008
-
-
Dan Gohman authored
with ConstantInt. This led to fixing a bug in TargetLowering.cpp using getValue instead of getAPIntValue. llvm-svn: 56159
-
- Aug 28, 2008
-
-
Gabor Greif authored
llvm-svn: 55504
-
- Aug 23, 2008
-
-
Dan Gohman authored
process up to a higher level. This allows FastISel to leverage more of SelectionDAGISel's infastructure, such as updating Machine PHI nodes. Also, implement transitioning from SDISel back to FastISel in the middle of a block, so it's now possible to go back and forth. This allows FastISel to hand individual CallInsts and other complicated things off to SDISel to handle, while handling the rest of the block itself. To help support this, reorganize the SelectionDAG class so that it is allocated once and reused throughout a function, instead of being completely reallocated for each block. llvm-svn: 55219
-