- Aug 18, 2009
-
-
Evan Cheng authored
llvm-svn: 79318
-
- Aug 14, 2009
-
-
Evan Cheng authored
llvm-svn: 78970
-
- Aug 13, 2009
-
-
Jim Grosbach authored
llvm-svn: 78918
-
David Goodwin authored
llvm-svn: 78908
-
Jim Grosbach authored
llvm-svn: 78905
-
Jim Grosbach authored
llvm-svn: 78904
-
- Aug 12, 2009
-
-
David Goodwin authored
Enhance the InstrStage object to enable the specification of an Itinerary with overlapping stages. The default is to maintain the current behavior that the "next" stage immediately follows the previous one. llvm-svn: 78827
-
Jim Grosbach authored
llvm-svn: 78806
-
Evan Cheng authored
llvm-svn: 78777
-
- Aug 11, 2009
-
-
Evan Cheng authored
llvm-svn: 78717
-
Owen Anderson authored
the latter is capable of representing either a primitive or an extended type. llvm-svn: 78713
-
Jim Grosbach authored
llvm-svn: 78701
-
Evan Cheng authored
llvm-svn: 78657
-
Owen Anderson authored
llvm-svn: 78610
-
- Aug 10, 2009
-
-
Evan Cheng authored
llvm-svn: 78550
-
- Aug 09, 2009
-
-
Anton Korobeynikov authored
'no_hash' modifier. Hopefully this will make Daniel happy :) llvm-svn: 78514
-
- Aug 07, 2009
-
-
Evan Cheng authored
llvm-svn: 78410
-
Evan Cheng authored
It turns out most of the thumb2 instructions are not allowed to touch SP. The semantics of such instructions are unpredictable. We have just been lucky that tests have been passing. This patch takes pain to ensure all the PEI lowering code does the right thing when lowering frame indices, insert code to manipulate stack pointers, etc. It's also custom lowering dynamic stack alloc into pseudo instructions so we can insert the right instructions at scheduling time. This fixes PR4659 and PR4682. llvm-svn: 78361
-
- Aug 06, 2009
-
-
David Goodwin authored
Add parameter to pattern classes to enable an itinerary to be specified for instructions. For now just use the existing itineraries or NoItinerary. llvm-svn: 78321
-
- Aug 05, 2009
-
-
Evan Cheng authored
llvm-svn: 78126
-
- Aug 04, 2009
-
-
Evan Cheng authored
Emit sub r, #c instead of transforming it to add r, #-c if c fits in 8-bit. This is a bit of pre-mature optimization. 8-bit variant makes it likely it will be narrowed to a 16-bit instruction. llvm-svn: 78030
-
- Aug 01, 2009
-
-
Evan Cheng authored
llvm-svn: 77781
-
Evan Cheng authored
llvm-svn: 77764
-
Evan Cheng authored
instructions for calls since BL and BLX are always 32-bit long and BX is always 16-bit long. Also, we should be using BLX to call external function stubs. llvm-svn: 77756
-
Evan Cheng authored
llvm-svn: 77743
-
- Jul 30, 2009
-
-
David Goodwin authored
llvm-svn: 77627
-
David Goodwin authored
llvm-svn: 77625
-
David Goodwin authored
llvm-svn: 77611
-
- Jul 29, 2009
-
-
Evan Cheng authored
llvm-svn: 77507
-
Evan Cheng authored
- Darwin Thumb2 call clobbers r9. llvm-svn: 77500
-
Evan Cheng authored
llvm-svn: 77422
-
- Jul 28, 2009
-
-
Evan Cheng authored
In thumb2 mode, add pc is unpredictable. Use add + mov pc instead (that is until more optimization goes in). llvm-svn: 77364
-
-
-
David Goodwin authored
llvm-svn: 77329
-
Evan Cheng authored
- This change also makes it possible to switch between ARM / Thumb on a per-function basis. - Fixed thumb2 routine which expand reg + arbitrary immediate. It was using using ARM so_imm logic. - Use movw and movt to do reg + imm when profitable. - Other code clean ups and minor optimizations. llvm-svn: 77300
-
David Goodwin authored
llvm-svn: 77275
-
- Jul 27, 2009
-
-
David Goodwin authored
llvm-svn: 77201
-
David Goodwin authored
llvm-svn: 77199
-
- Jul 25, 2009
-
-
Evan Cheng authored
Before: adr r12, #LJTI3_0_0 ldr pc, [r12, +r0, lsl #2] LJTI3_0_0: .long LBB3_24 .long LBB3_30 .long LBB3_31 .long LBB3_32 After: adr r12, #LJTI3_0_0 add pc, r12, +r0, lsl #2 LJTI3_0_0: b.w LBB3_24 b.w LBB3_30 b.w LBB3_31 b.w LBB3_32 This has several advantages. 1. This will make it easier to optimize this to a TBB / TBH instruction + (smaller) table. 2. This eliminate the need for ugly asm printer hack to force the address into thumb addresses (bit 0 is one). 3. Same codegen for pic and non-pic. 4. This eliminate the need to align the table so constantpool island pass won't have to over-estimate the size. Based on my calculation, the later is probably slightly faster as well since ldr pc with shifter address is very slow. That is, it should be a win as long as the HW implementation can do a reasonable job of branch predict the second branch. llvm-svn: 77024
-