- Dec 19, 2011
-
-
Akira Hatanaka authored
This change reduces the number of instructions generated. For example, (load (add (sub $n0, $n1), (MipsLo got(s)))) results in the following sequence of instructions: 1. sub $n2, $n0, $n1 2. lw got(s)($n2) Previously, three instructions were needed. 1. sub $n2, $n0, $n1 2. addiu $n3, $n2, got(s) 3. lw 0($n3) llvm-svn: 146888
-
- Dec 09, 2011
-
-
Akira Hatanaka authored
llvm-svn: 146232
-
- Dec 08, 2011
-
-
Akira Hatanaka authored
- Modify lowering of global TLS address nodes. - Modify isel of ThreadPointer. - Wrap target global TLS address nodes that are operands of loads with WrapperPIC. - Remove Mips-specific DAG nodes TlsGd, TprelHi and TprelLo, which can be substituted with other existing nodes. llvm-svn: 146175
-
- Dec 07, 2011
-
-
Akira Hatanaka authored
llvm-svn: 146063
-
Akira Hatanaka authored
llvm-svn: 146062
-
Akira Hatanaka authored
llvm-svn: 146059
-
- Oct 11, 2011
-
-
Akira Hatanaka authored
llvm-svn: 141615
-
- Oct 03, 2011
-
-
Akira Hatanaka authored
llvm-svn: 141017
-
- Sep 21, 2011
-
-
Akira Hatanaka authored
llvm-svn: 140214
-
- Aug 16, 2011
-
-
Akira Hatanaka authored
Mips1 does not support double precision loads or stores, therefore two single precision loads or stores must be used in place of these instructions. This patch treats double precision loads and stores as if they are legal instructions until MCInstLowering, instead of generating the single precision instructions during instruction selection or Prolog/Epilog code insertion. Without the changes made in this patch, llc produces code that has the same problem described in r137484 or bails out when MipsInstrInfo::storeRegToStackSlot or loadRegFromStackSlot is called before register allocation. llvm-svn: 137711
-
- Aug 12, 2011
-
-
Akira Hatanaka authored
integer register to a floating point register. It is not valid to interpret the value of a floating pointer register as part of a double precision floating point value after a single precision floating point computational or move instruction stores its result to the register. - In the test case, the following code is generated before this patch is applied: mtc1 $zero, $f2 ; unformatted copy to $f2 mov.s $f0, $f2 ; $f0 is in single format sdc1 $f12, 0($sp) mov.s $f1, $f2 ; $f1 is in single format c.eq.d $f12, $f0 ; $f0 cannot be interpreted as double - The following code is generated after this patch is applied: mtc1 $zero, $f0 ; unformatted copy to $f0 mtc1 $zero, $f1 ; unformatted copy to $f1 c.eq.d $f12, $f0 ; $f0 can be interpreted as double Bhanu Chetlapalli and Chris Dearman at MIPS technologies reported this bug and provided the test case. llvm-svn: 137484
-
- Jul 07, 2011
-
-
Akira Hatanaka authored
before the offset. This change will enable simplification of function MipsRegisterInfo::eliminateFrameIndex. llvm-svn: 134625
-
- Jun 24, 2011
-
-
Akira Hatanaka authored
static variables or functions. llvm-svn: 133803
-
- Jun 21, 2011
-
-
Akira Hatanaka authored
llvm-svn: 133494
-
- Jun 09, 2011
-
-
Eric Christopher authored
llvm-svn: 132777
-
Akira Hatanaka authored
llvm-svn: 132768
-
- Jun 07, 2011
-
-
Akira Hatanaka authored
llvm-svn: 132725
-
Akira Hatanaka authored
- Fix indentation. - Move comments. - Fit lines in 80 columns. - Remove dead code. llvm-svn: 132724
-
- Jun 02, 2011
-
-
Akira Hatanaka authored
llvm-svn: 132448
-
- May 31, 2011
-
-
Bruno Cardoso Lopes authored
Dynamic, Initial Exec and Local Exec TLS models. Patch by Sasa Stankovic llvm-svn: 132322
-
- May 28, 2011
-
-
Akira Hatanaka authored
Need this to prevent emitting illegal conditional move instructions. llvm-svn: 132240
-
- Apr 15, 2011
-
-
Akira Hatanaka authored
llvm-svn: 129612
-
Akira Hatanaka authored
Fix lines that have incorrect indentation or exceed 80 columns. There is no change in functionality. llvm-svn: 129606
-
- Apr 04, 2011
-
-
Akira Hatanaka authored
Move transformation of JmpLink and related nodes done during instruction selection to Legalize phase. llvm-svn: 128830
-
- Apr 02, 2011
-
-
Akira Hatanaka authored
llvm-svn: 128751
-
Akira Hatanaka authored
llvm-svn: 128750
-
- Apr 01, 2011
-
-
Akira Hatanaka authored
Remove redundant code. There are assignments to variables Base and Offset right after the code that is removed. llvm-svn: 128742
-
- Mar 04, 2011
-
-
Bruno Cardoso Lopes authored
llvm-svn: 127034
-
Bruno Cardoso Lopes authored
llvm-svn: 127027
-
Bruno Cardoso Lopes authored
llvm-svn: 127003
-
- Dec 23, 2010
-
-
Jeffrey Yasskin authored
new gcc warning that complains on self-assignments and self-initializations. llvm-svn: 122458
-
- Dec 21, 2010
-
-
Chris Lattner authored
something that just glues two nodes together, even if it is sometimes used for flags. llvm-svn: 122310
-
- Nov 12, 2010
-
-
Bruno Cardoso Lopes authored
llvm-svn: 118864
-
- Sep 21, 2010
-
-
Chris Lattner authored
passed the root of the match, even though only a few patterns actually needed this (one in X86, several in ARM [which should be refactored anyway], and some in CellSPU that I don't feel like detangling). Instead of requiring all ComplexPatterns to take the dead root, have targets opt into getting the root by putting SDNPWantRoot on the ComplexPattern. llvm-svn: 114471
-
- Sep 03, 2010
-
-
Jakob Stoklund Olesen authored
llvm-svn: 112919
-
- Aug 19, 2010
-
-
Jakob Stoklund Olesen authored
llvm-svn: 111468
-
- May 24, 2010
-
-
Jakob Stoklund Olesen authored
llvm-svn: 104514
-
- 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
-