Chris Lattner
|
4234f57fa0
|
switch TargetLowering::getConstraintType to take the entire constraint,
not just the first letter. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35322 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-25 02:14:49 +00:00 |
|
Dale Johannesen
|
fa4bce2b76
|
repair x86 performance, dejagnu problems from previous change
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35245 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-21 21:51:52 +00:00 |
|
Evan Cheng
|
a125cbe839
|
Updated.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35229 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-20 22:32:39 +00:00 |
|
Dale Johannesen
|
8e59e163db
|
do not share old induction variables when this would result in invalid
instructions (that would have to be split later)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35227 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-20 21:54:54 +00:00 |
|
Lauro Ramos Venancio
|
64c88d741e
|
bugfix: When the source register of CALL_NOLINK was LR, the following code was emitted:
mov lr, pc
bx lr
So, the function was not called.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35218 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-20 17:57:23 +00:00 |
|
Evan Cheng
|
c70d1849b7
|
Make two piece constant generation as a single instruction. It's re-materialized as a load from constantpool.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35207 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-20 08:11:30 +00:00 |
|
Evan Cheng
|
5603dcf21e
|
New entry.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35206 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-20 08:10:17 +00:00 |
|
Evan Cheng
|
bf2c8b3c96
|
Added MRegisterInfo hook to re-materialize an instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35205 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-20 08:09:38 +00:00 |
|
Chris Lattner
|
1719e13da0
|
fix indentation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35202 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-20 02:25:53 +00:00 |
|
Dale Johannesen
|
80dae195c7
|
fix obvious comment bug
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35196 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-20 00:30:56 +00:00 |
|
Evan Cheng
|
9f6636ff0c
|
Fix naming inconsistencies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35163 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-19 07:48:02 +00:00 |
|
Evan Cheng
|
fa775d09c6
|
Special LDR instructions to load from non-pc-relative constantpools. These are
rematerializable. Only used for constant generation for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35162 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-19 07:20:03 +00:00 |
|
Evan Cheng
|
a251570417
|
Constant generation instructions are re-materializable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35161 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-19 07:09:02 +00:00 |
|
Lauro Ramos Venancio
|
368f20fda4
|
Only ARMv6 has BSWAP.
Fix MultiSource/Applications/aha test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35128 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-16 22:54:16 +00:00 |
|
Evan Cheng
|
2770747216
|
Added isLegalAddressExpression(). Only allows X +/- C for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35122 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-16 08:43:56 +00:00 |
|
Evan Cheng
|
a13fd108f2
|
AM2 can match 2^n +/- 1. e.g. ldr r3, [r2, r2, lsl #2]
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35088 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-13 21:05:54 +00:00 |
|
Evan Cheng
|
961f879ed8
|
Zero is always a legal AM immediate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35087 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-13 20:37:59 +00:00 |
|
Evan Cheng
|
e8308df0b9
|
Implement getTargetLowering() or else LSR won't be using ARM specific hooks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35077 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-13 01:20:42 +00:00 |
|
Evan Cheng
|
b01fad6d19
|
Updated TargetLowering LSR addressing mode hooks for ARM and Thumb.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35075 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-12 23:30:29 +00:00 |
|
Evan Cheng
|
1a9da0d66c
|
Minor stuff.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35049 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-09 19:46:06 +00:00 |
|
Evan Cheng
|
44f4fca3c0
|
Add comments about LSR / ARM.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35048 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-09 19:35:33 +00:00 |
|
Evan Cheng
|
2265b49193
|
Unfinished work and ideas related to register scavenger.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35047 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-09 19:34:51 +00:00 |
|
Dale Johannesen
|
818c085232
|
apply comments from review of last patch
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35045 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-09 19:18:59 +00:00 |
|
Dale Johannesen
|
a6bc6fc170
|
Add some observations from CoreGraphics benchmark. Remove register
scavenging todo item, since it is now implemented.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35044 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-09 17:58:17 +00:00 |
|
Evan Cheng
|
23a9570494
|
Implement inline asm modifier c.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35035 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-08 22:42:46 +00:00 |
|
Evan Cheng
|
b582b1b1fc
|
Fix a typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35030 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-08 21:59:30 +00:00 |
|
Evan Cheng
|
032953d747
|
Putting more constants which do not contain relocations into .literal{4|8|16}
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35026 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-08 08:31:54 +00:00 |
|
Evan Cheng
|
bf822eb6a3
|
Change register allocation order to Dale's suggestion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35021 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-08 02:56:40 +00:00 |
|
Evan Cheng
|
11788fde93
|
Bug fix. Not advancing the register scavenger iterator correctly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35020 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-08 02:55:08 +00:00 |
|
Evan Cheng
|
98ded765c2
|
For Darwin, put constant data into .const, .const_data, .literal{4|8|16}
sections.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35017 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-08 01:25:25 +00:00 |
|
Evan Cheng
|
603b83ebcd
|
Only safe to use a call-clobbered or spilled callee-saved register as scratch register.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35010 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-07 20:30:36 +00:00 |
|
Anton Korobeynikov
|
d0b82b301d
|
Refactoring of formal parameter flags. Enable properly use of
zext/sext/aext stuff.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35008 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-07 16:25:09 +00:00 |
|
Evan Cheng
|
cb20998b3f
|
ARM always use register scavenger. No longer reserves R12.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34999 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-07 02:46:23 +00:00 |
|
Evan Cheng
|
0ea12ec848
|
Fix some brittle code. Watch out for cases where register scavenger is pointing to deleted instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34998 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-07 02:38:05 +00:00 |
|
Evan Cheng
|
3d06cf4584
|
Fix one more Thumb eliminateFrameIndex bug.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34990 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-07 00:12:18 +00:00 |
|
Evan Cheng
|
e6257632fc
|
Register scavenging is now on by default for ARM.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34987 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-06 22:02:53 +00:00 |
|
Evan Cheng
|
a90f3408b3
|
Make load / store optimizer use register scavenger.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34986 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-06 21:59:20 +00:00 |
|
Evan Cheng
|
cc1c427266
|
Code clean up. Prepare to use register scavenger.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34976 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-06 18:02:41 +00:00 |
|
Evan Cheng
|
140e33cfd1
|
Scavenge a register using the register scavenger when needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34966 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-06 10:03:56 +00:00 |
|
Anton Korobeynikov
|
1d9baccc9b
|
Use new SDIselParamAttr enumeration. This removes "magick" constants
from formal attributes' flags processing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34963 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-06 08:12:33 +00:00 |
|
Lauro Ramos Venancio
|
6d7dd8ef46
|
Use init_array/fini_array sections for static contructors/destructors when the ABI is AAPCS.
Fix SingleSource/Regression/C/ConstructorDestructorAttributes test on arm-linux-gnueabi.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34931 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-05 17:59:58 +00:00 |
|
Dale Johannesen
|
9f8e50d4ed
|
eliminate unnecessary reset of SP in epilog on darwin
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34824 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-02 01:17:17 +00:00 |
|
Evan Cheng
|
c1c2de0ae7
|
Use a spilled free callee-saved register as scratch register.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34785 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-01 08:57:52 +00:00 |
|
Evan Cheng
|
f49407b790
|
- Track which callee-saved registers are spilled.
- Some code clean up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34783 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-01 08:26:31 +00:00 |
|
Evan Cheng
|
cda067bad9
|
Switch from std::vector<bool> to BitVector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34781 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-01 07:52:44 +00:00 |
|
Bill Wendling
|
f1d6006ad6
|
Get rid of verboten <iostream> include.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34777 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-03-01 06:05:39 +00:00 |
|
Dale Johannesen
|
b71aa2b6ca
|
Changes requested in review of last pass. Also pulled isThumb into a
member, instead of resetting in every function that uses it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34764 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-02-28 23:20:38 +00:00 |
|
Evan Cheng
|
ad78ef2154
|
Doh. ARM::PC is obvious a reserved register.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34763 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-02-28 23:12:34 +00:00 |
|
Dale Johannesen
|
f1b214d3ca
|
Add intelligence about where to break large blocks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34755 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-02-28 18:41:23 +00:00 |
|
Evan Cheng
|
36230cdda4
|
Make requiresRegisterScavenging determination on a per MachineFunction basis.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34711 91177308-0d34-0410-b5e6-96231b3b80d8
|
2007-02-28 00:59:19 +00:00 |
|