Jakob Stoklund Olesen
ffc0f6586a
Properly deal with empty intervals when checking for interference.
...
llvm-svn: 121319
2010-12-08 23:51:35 +00:00
Jason W Kim
e270068021
Style nit and whitespace cleanup
...
llvm-svn: 121317
2010-12-08 23:35:25 +00:00
Eric Christopher
d601b8288f
Move this test to tlv* to make it easier to notice versus linux tls
...
support.
llvm-svn: 121316
2010-12-08 23:33:23 +00:00
Jim Grosbach
5a00173ead
Clean up the add/sub w/ SP source reg instructions in Thumb2 a bit. Add a FIXME
...
for more thorough cleanup.
llvm-svn: 121315
2010-12-08 23:30:19 +00:00
Jim Grosbach
2eda2e0be9
Fix T2TwoRegImm and use it for t2ADDrSPi12 and friends.
...
llvm-svn: 121314
2010-12-08 23:24:29 +00:00
Jason W Kim
e8047d9ec4
Removed dead comment.
...
llvm-svn: 121313
2010-12-08 23:19:44 +00:00
Jason W Kim
2e6e50c1b0
ARM/MC/ELF TPsoft is now a proper pseudo inst.
...
Added test to check bl __aeabi_read_tp gets emitted properly for ELF/ASM
as well as ELF/OBJ (including fixup)
Also added support for ELF::R_ARM_TLS_IE32
llvm-svn: 121312
2010-12-08 23:14:44 +00:00
Jim Grosbach
7a9e43e642
T2TwoRegImm isn't right for t2SUBrSPi12. Use T2I instead.
...
llvm-svn: 121311
2010-12-08 23:13:01 +00:00
Jim Grosbach
4f11f0f871
Add operand encoding for Thumb2 subw SP + imm. rdar://8745434
...
llvm-svn: 121310
2010-12-08 23:12:09 +00:00
Jim Grosbach
a423fbc4c7
Add operand encoding for Thumb2 addw Rn + imm. rdar://8745434
...
llvm-svn: 121309
2010-12-08 23:04:16 +00:00
Bill Wendling
9756f7c7b0
Support the "target" encodings for the CB[N]Z instructions.
...
llvm-svn: 121308
2010-12-08 23:01:43 +00:00
Evan Cheng
9fcb62eed1
Fix an obvious cut-n-paste error.
...
llvm-svn: 121307
2010-12-08 23:01:18 +00:00
Jakob Stoklund Olesen
37df3f04c2
Implement very primitive hinting support in RegAllocGreedy.
...
The hint is simply tried first and then forgotten if it couldn't be allocated
immediately.
llvm-svn: 121306
2010-12-08 22:57:16 +00:00
Jim Grosbach
51082ed2a4
Add operand encoding for Thumb2 addw SP + imm. rdar://8745434
...
llvm-svn: 121305
2010-12-08 22:50:19 +00:00
Jim Grosbach
e1eb84a44a
Parameterize opcode encoding bits for Thumb2 extended precision integer
...
multiply instructions.
llvm-svn: 121301
2010-12-08 22:38:41 +00:00
Bob Wilson
8c693a934a
Add operators for "_lane" variants of some saturating Neon multiply intrinsics
...
so they can be implemented without separate clang builtins.
llvm-svn: 121299
2010-12-08 22:36:08 +00:00
Jim Grosbach
13c16125f1
Fix operand encoding for Thumb2 extended precision multiplies. rdar://8745555
...
llvm-svn: 121297
2010-12-08 22:29:28 +00:00
Jakob Stoklund Olesen
3c81b6a50b
Store (priority,regnum) pairs in the priority queue instead of providing an
...
abstract priority queue interface in subclasses that want to override the
priority calculations.
Subclasses must provide a getPriority() implementation instead.
This approach requires less code as long as priorities are expressable as simple
floats, and it avoids the dangers of defining potentially expensive priority
comparison functions.
It also should speed up priority_queue operations since they no longer have to
chase pointers when comparing registers. This is not measurable, though.
Preferably, we shouldn't use floats to guide code generation. The use of floats
here is derived from the use of floats for spill weights. Spill weights have a
dynamic range that doesn't lend itself easily to a fixpoint implementation.
When someone invents a stable spill weight representation, it can be reused for
allocation priorities.
llvm-svn: 121294
2010-12-08 22:22:41 +00:00
Eric Christopher
d492f798d1
Reword comment slightly.
...
llvm-svn: 121293
2010-12-08 22:21:42 +00:00
Lang Hames
334ef20886
Fixed some dependencies in RegAllocPBQP.h . Thanks to Borja Ferrer for pointing out this issue.
...
llvm-svn: 121292
2010-12-08 22:15:32 +00:00
Jim Grosbach
063c38c6df
Simplify T2 operand assignment notation a bit. No need to specify a bit range
...
for the source field when it's the whole thing that's being referenced.
llvm-svn: 121291
2010-12-08 22:10:43 +00:00
Devang Patel
e515e18523
Use type's file info while describing inheritance relationship.
...
llvm-svn: 121289
2010-12-08 21:46:37 +00:00
Bob Wilson
b258f6e80b
Add operators for vabdl and vabal so they can be implemented without builtins.
...
llvm-svn: 121287
2010-12-08 21:39:04 +00:00
Bob Wilson
368438b3ac
Remove unused function parameter.
...
llvm-svn: 121286
2010-12-08 21:39:00 +00:00
Eric Christopher
77d3a7b3fb
Fix comment.
...
llvm-svn: 121285
2010-12-08 21:35:09 +00:00
Jakob Stoklund Olesen
f04d283db1
Trim includes.
...
llvm-svn: 121283
2010-12-08 21:12:00 +00:00
Devang Patel
90fd70aa09
Add support to create debug info for functions and methods.
...
llvm-svn: 121281
2010-12-08 20:42:44 +00:00
Jim Grosbach
5e900612ff
Tweak ARM fixup value adjustments for Thumb to better handle the half-word
...
ordering of thumb mode.
llvm-svn: 121280
2010-12-08 20:32:07 +00:00
Devang Patel
53f05af4c1
Add support to create class type.
...
llvm-svn: 121279
2010-12-08 20:18:20 +00:00
Bob Wilson
9cb69260e2
Add an operator for vaba so it can be implemented using vabd.
...
llvm-svn: 121276
2010-12-08 20:09:10 +00:00
Andrew Trick
fb72ca2129
Generalize PostRAHazardRecognizer so it can be used in any pass for
...
both forward and backward scheduling. Rename it to
ScoreboardHazardRecognizer (Scoreboard is one word). Remove integer
division from the scoreboard's critical path.
llvm-svn: 121274
2010-12-08 20:04:29 +00:00
Bill Wendling
24e6d5a4f2
Use this new fangled StringSwitch technology.
...
llvm-svn: 121273
2010-12-08 20:02:49 +00:00
Owen Anderson
d5c17d5981
Improve comment.
...
llvm-svn: 121272
2010-12-08 19:31:11 +00:00
Jim Grosbach
16cdaf34bc
Add initializer.
...
llvm-svn: 121262
2010-12-08 15:36:45 +00:00
Bill Wendling
3e1be94d7e
Cleanup table a bit.
...
llvm-svn: 121250
2010-12-08 13:03:15 +00:00
Evan Cheng
5582f058f4
Add comments.
...
llvm-svn: 121238
2010-12-08 06:29:02 +00:00
Jakob Stoklund Olesen
d638b989f2
Stub out RegAllocGreedy.
...
This new register allocator is initially identical to RegAllocBasic, but it will
receive all of the tricks that RegAllocBasic won't get.
RegAllocGreedy will eventually replace linear scan.
llvm-svn: 121234
2010-12-08 03:26:16 +00:00
Bill Wendling
c5a48281fa
Fix newlines.
...
llvm-svn: 121233
2010-12-08 02:46:25 +00:00
Daniel Dunbar
164cb86163
build: Shared libraries shouldn't used RPATH on Darwin, only main executables
...
should use that.
llvm-svn: 121231
2010-12-08 02:29:26 +00:00
Eric Christopher
7b87454424
Regenerate this for Daniel.
...
llvm-svn: 121227
2010-12-08 02:02:14 +00:00
Bill Wendling
dac1f24d98
Add support for loading from a constant pool.
...
llvm-svn: 121226
2010-12-08 01:57:09 +00:00
Devang Patel
b7a7988b6b
Add support to create vector, array, enums etc...
...
llvm-svn: 121224
2010-12-08 01:50:15 +00:00
Daniel Dunbar
28f51a7c4a
build: Don't force -flat_namespace or '-undefined suppress' on unsuspecting users of LLVM makefiles, these options really shouldn't be used on Darwin.
...
llvm-svn: 121223
2010-12-08 01:48:05 +00:00
Daniel Dunbar
32c68a7d29
autoconf: Stop lying to me.
...
llvm-svn: 121222
2010-12-08 01:48:03 +00:00
Jim Grosbach
d4eea7c10d
Let target asm backends see assembler flags as they go by. Use that to handle
...
thumb vs. arm mode differences in WriteNopData().
llvm-svn: 121219
2010-12-08 01:16:55 +00:00
Jakob Stoklund Olesen
77e7ad803a
Move RABasic::addMBBLiveIns to the base class, it is generally useful.
...
Minor optimization to the use of IntervalMap iterators. They are fairly
heavyweight, so prefer SI.valid() over SI != end().
llvm-svn: 121217
2010-12-08 01:06:06 +00:00
Owen Anderson
d00dc39a11
Simplify the byte reordering logic slightly.
...
llvm-svn: 121216
2010-12-08 00:21:33 +00:00
Owen Anderson
ba5edcfe05
VLDR fixups need special handling under Thumb. While the encoding is the same,
...
the order of the bytes in the data stream is flipped around.
llvm-svn: 121215
2010-12-08 00:18:36 +00:00
Bob Wilson
dd1d9cf3b6
Add operators for vadd[lw] and vsub[lw]
...
so they can be implemented without clang builtins.
llvm-svn: 121213
2010-12-08 00:14:04 +00:00
Devang Patel
0c0accf6bc
Global variable does not need linkage name.
...
llvm-svn: 121212
2010-12-08 00:06:22 +00:00