Jakob Stoklund Olesen
0c67e01e5f
Add an AllocationOrder class that can iterate over the allocatable physical
...
registers for a given virtual register.
Reserved registers are filtered from the allocation order, and any valid hint is
returned as the first suggestion.
For target dependent hints, a number of arcane target hooks are invoked.
llvm-svn: 121497
2010-12-10 18:36:02 +00:00
Jim Grosbach
e119da1146
Thumb unconditional branch binary encoding. rdar://8754994
...
llvm-svn: 121496
2010-12-10 18:21:33 +00:00
Jim Grosbach
78485ad65e
Thumb conditional branch binary encodings. rdar://8745367
...
llvm-svn: 121493
2010-12-10 17:13:40 +00:00
Michael J. Spencer
9b989ec9b1
Another git svn dcommit test. This time let's hope it doesn't kill my repo.
...
llvm-svn: 121485
2010-12-10 14:45:10 +00:00
Michael J. Spencer
497642ea5e
Another git-svn dcommit test. (last time I got access and client errors and it broke everything locally;/)
...
llvm-svn: 121484
2010-12-10 14:27:18 +00:00
Michael J. Spencer
7ed7808138
Test git svn dcommit
...
llvm-svn: 121483
2010-12-10 13:44:26 +00:00
Anton Korobeynikov
ca5e8bbd66
Another dummy commit to check GIT mirroring
...
llvm-svn: 121481
2010-12-10 11:49:22 +00:00
Anton Korobeynikov
1f833587de
Dummy commit to test GIT mirroring
...
llvm-svn: 121479
2010-12-10 11:38:59 +00:00
NAKAMURA Takumi
e737e26144
macho-dump: Fix CMake build, following up to r121466.
...
llvm-svn: 121476
2010-12-10 09:18:26 +00:00
Rafael Espindola
0a017a6db2
Fixed version of 121434 with no new memory leaks.
...
llvm-svn: 121471
2010-12-10 07:39:47 +00:00
Bob Wilson
4959014850
The Neon vqdmlsl_lane and vqdmlal_lane intrinsics have 4 arguments, not 3.
...
llvm-svn: 121469
2010-12-10 06:37:53 +00:00
Daniel Dunbar
ede0e9b585
Mach-O/ARM: Add relocation type enumeration.
...
llvm-svn: 121467
2010-12-10 06:19:49 +00:00
Daniel Dunbar
a5d9f6df8f
macho-dump: Switch to C++ macho-dump tool.
...
llvm-svn: 121466
2010-12-10 06:19:45 +00:00
Daniel Dunbar
7bfb872d3d
Mach-O: Tweak field name.
...
llvm-svn: 121465
2010-12-10 06:19:39 +00:00
Nick Lewycky
565fa9c7dc
Remove dead header.
...
llvm-svn: 121463
2010-12-10 05:12:54 +00:00
Rafael Espindola
c837077903
Fix cmake build.
...
llvm-svn: 121462
2010-12-10 04:28:37 +00:00
Rafael Espindola
a945a34c73
Revert my previous patch to make the valgrind bots happy.
...
llvm-svn: 121461
2010-12-10 04:01:09 +00:00
NAKAMURA Takumi
a8c1c3fe22
Add dependency to "make check".
...
cmake/modules/AddLLVM.cmake: Add empty "phony" target in add_llvm_loadable_module() even if loadable module were not supported.
llvm-svn: 121455
2010-12-10 02:15:36 +00:00
NAKAMURA Takumi
99db9f2f70
lib/Target/CMakeLists.txt: Add missing lib/Target/TargetAsmInfo.cpp, following up to r121434.
...
llvm-svn: 121454
2010-12-10 02:15:24 +00:00
Kevin Enderby
c92136ffb6
Fix the leak from r121401 of the Operands erased in the list but not deleted.
...
llvm-svn: 121450
2010-12-10 01:41:56 +00:00
Eric Christopher
775608995c
Use GZIPBIN instead of GZIP. Apparently gzip uses GZIP as an environment
...
variable for args you want to default pass to gzip.
Patch based on one by asau@inbox.ru .
Fixes PR8758.
llvm-svn: 121449
2010-12-10 01:31:51 +00:00
Nate Begeman
a98b5419fa
Add some missing predicates.
...
llvm-svn: 121445
2010-12-10 00:54:26 +00:00
Chris Lattner
02093e1f0b
fix some validation problems
...
llvm-svn: 121444
2010-12-10 00:54:03 +00:00
Chris Lattner
77c8cc8fc9
restructure this for readability, correct the example to follow the public ivar name convention
...
llvm-svn: 121443
2010-12-10 00:52:35 +00:00
Nate Begeman
8b08f5232b
Formalize the notion that AVX and SSE are non-overlapping extensions from the compiler's point of view. Per email discussion, we either want to always use VEX-prefixed instructions or never use them, and are taking "HasAVX" to mean "Always use VEX". Passing -mattr=-avx,+sse42 should serve to restore legacy SSE support when desirable.
...
llvm-svn: 121439
2010-12-10 00:26:57 +00:00
Rafael Espindola
56eb741237
Initial support for the cfi directives. This is just enough to get
...
f:
.cfi_startproc
nop
.cfi_endproc
assembled (on ELF).
llvm-svn: 121434
2010-12-09 23:48:29 +00:00
Devang Patel
197df5c9c8
Print breakpoints for call instructions. This is used by optimized debug info test harness.
...
llvm-svn: 121432
2010-12-09 23:37:07 +00:00
Chris Lattner
7365a2838b
add a rule for enums, patch by Zhanyong Wan!
...
llvm-svn: 121430
2010-12-09 23:32:39 +00:00
Devang Patel
3967ef8df3
Add initial support to measure local variables.
...
llvm-svn: 121428
2010-12-09 23:18:58 +00:00
Rafael Espindola
d66e65df03
Use const references.
...
llvm-svn: 121426
2010-12-09 23:08:35 +00:00
Bill Wendling
2eeba63215
Fix the prototype for the llvm.eh.selector intrinsic.
...
llvm-svn: 121425
2010-12-09 23:05:48 +00:00
Bill Wendling
0c4838bab7
Thumb ldr reg+imm offsets were encoded incorrectly. The scaling factor of the
...
t_addrmode_s# address modes is used for ASM printing, not for encoding.
<rdar://problem/8745375>
llvm-svn: 121417
2010-12-09 21:49:07 +00:00
Nate Begeman
073901c836
Add support for AVX to materialize +0.0 when doing scalar FP.
...
llvm-svn: 121415
2010-12-09 21:43:51 +00:00
Owen Anderson
cb4d8f2e74
Use the new IsAligned fixup flag to improve fixup encodings for Thumb2 branches. This is still not perfect,
...
but it gets many more of them correct than it did previously.
llvm-svn: 121414
2010-12-09 21:34:47 +00:00
Stuart Hastings
d2ea97cbef
Initial support for nested CALLSEQ_START/CALLSEQ_END constructs in LegalizeDAG.
...
Necessary for byval support on ARM. Radar 7662569.
llvm-svn: 121412
2010-12-09 21:25:20 +00:00
Jakob Stoklund Olesen
3413807913
Remember to filter out reserved rergisters from the allocation order.
...
llvm-svn: 121411
2010-12-09 21:20:46 +00:00
Jakob Stoklund Olesen
4c2fadbc18
Add a forgotten initializer for CheckedFirstInterference.
...
llvm-svn: 121410
2010-12-09 21:20:44 +00:00
Dan Gohman
f749ad734f
Give CurStreamType's enum a name. This works around what is apparently
...
a bug in Apple GCC 4.0.
llvm-svn: 121409
2010-12-09 20:35:40 +00:00
Owen Anderson
3ef19d9d48
Fix an issue in some Thumb fixups, where the effective PC address needs to be 4-byte aligned when calculating
...
the offset. Add a new fixup flag to represent this, and use it for the one fixups that I have a testcase for needing
this. It's quite likely that the other Thumb fixups will need this too, and to have their fixup encoding logic
adjusted accordingly.
llvm-svn: 121408
2010-12-09 20:27:52 +00:00
Jim Grosbach
68b27eb9d1
Rename CB/CBZ specific fixup accordingly.
...
llvm-svn: 121404
2010-12-09 19:50:12 +00:00
Devang Patel
3ebe3defe3
Add assert to catch an attempt to emit .byte 256
...
llvm-svn: 121402
2010-12-09 19:26:21 +00:00
Kevin Enderby
3164a346e6
Add support for parsing ARM arithmetic instructions that update or don't update
...
the condition codes. Where the ones that do have an 's' suffix and the ones
that don't don't have the suffix. The trick is if MatchInstructionImpl() fails
we try again after adding a CCOut operand with the correct value and removing
the 's' if present. Four simple test cases added for now, lots more to come.
llvm-svn: 121401
2010-12-09 19:19:43 +00:00
Jim Grosbach
62b68112da
Rename the encoder method for t_cbtarget to match.
...
llvm-svn: 121399
2010-12-09 19:04:53 +00:00
Jim Grosbach
529c7e8d1f
Thumb needs a few different encoding schemes for branch targets. Rename
...
t_brtarget to be more specific.
llvm-svn: 121398
2010-12-09 19:01:46 +00:00
Bob Wilson
47206b840b
80-column fixes.
...
llvm-svn: 121395
2010-12-09 18:43:35 +00:00
Jim Grosbach
5fccad84a3
ARM stm/ldm instructions require more than one register in the register list.
...
Otherwise, a plain str/ldr should be used instead. Make sure we account for
that in prologue/epilogue code generation.
rdar://8745460
llvm-svn: 121391
2010-12-09 18:31:13 +00:00
Bob Wilson
38c3ca78e6
Add a license comment to the generated arm_neon.h header.
...
Remove the previous header. I don't think we need to expose to end users
that we use TableGen to produce our version of arm_neon.h, and that header
was also using doubleslash comments which could be a problem when using it
in strict C89 compilations.
llvm-svn: 121390
2010-12-09 18:31:01 +00:00
Andrew Trick
ccef09888c
Added register reassignment prototype to RAGreedy. It's a simple
...
heuristic to reshuffle register assignments when we can't find an
available reg.
llvm-svn: 121388
2010-12-09 18:15:21 +00:00
Michael J. Spencer
d422723721
More code not compiled by CMake. :(.
...
llvm-svn: 121387
2010-12-09 18:06:07 +00:00
Michael J. Spencer
01639a4c72
CMake: Add FileUpdate to the build.
...
llvm-svn: 121386
2010-12-09 17:54:44 +00:00
Michael J. Spencer
5078434ff3
Missed FileUpdate because CMake doesn't build it yet :(.
...
llvm-svn: 121385
2010-12-09 17:48:55 +00:00
Michael J. Spencer
ae7de7e2f9
Support/Windows/PathV2: Fix header comment.
...
llvm-svn: 121383
2010-12-09 17:37:42 +00:00
Michael J. Spencer
db97c0b520
Fix whitespace.
...
llvm-svn: 121382
2010-12-09 17:37:32 +00:00
Michael J. Spencer
751e9aafa9
Support: Move c_str from SmallVector back to SmallString and add a free standing
...
templated c_str in Windows.h to replace it.
llvm-svn: 121381
2010-12-09 17:37:18 +00:00
Michael J. Spencer
730f51ad96
Support/FileSystem: Change file_status predicate functions that cannot fail to
...
return their result instead of an error_code. Also add some missing predicate
functions.
llvm-svn: 121380
2010-12-09 17:37:02 +00:00
Michael J. Spencer
7b6fef82d4
Support/MemoryBuffer: Replace all uses of std::string *ErrMsg with error_code &ec. And fix clients.
...
llvm-svn: 121379
2010-12-09 17:36:48 +00:00
Bruno Cardoso Lopes
d47180e45e
Add ROTR and ROTRV mips32 instructions. Patch by Akira Hatanaka
...
llvm-svn: 121377
2010-12-09 17:32:30 +00:00
Bruno Cardoso Lopes
fde21cfa64
Fix delay slot filler for non mips1 targets. Patch by Akira Hatanaka
...
llvm-svn: 121376
2010-12-09 17:31:11 +00:00
Kalle Raiskila
b5e52df6dd
Dont' feed ILA two inputs - it takes just one.
...
llvm-svn: 121372
2010-12-09 16:17:31 +00:00
Jim Grosbach
23f8671e05
tidy up.
...
llvm-svn: 121371
2010-12-09 16:15:41 +00:00
Jim Grosbach
c0b669f5c0
80 columns.
...
llvm-svn: 121370
2010-12-09 16:14:46 +00:00
Chris Lattner
bc4457e317
enhance memcpyopt to zap memcpy's that have the same src/dst.
...
llvm-svn: 121362
2010-12-09 07:45:45 +00:00
Chris Lattner
fd51c52ef6
fix PR8753, eliminating a case where we'd infinitely make a
...
substitution because it doesn't actually change the IR. Patch by
Jakub Staszak!
llvm-svn: 121361
2010-12-09 07:39:50 +00:00
Eric Christopher
a8aaaee379
Rewrite the darwin tlv support to use a chain and return to copying
...
the output to the correct register. Fixes a hidden problem uncovered
by the last patch where we'd try to DAG combine our MVT::Other node
oddly.
llvm-svn: 121358
2010-12-09 06:25:53 +00:00
Owen Anderson
c7ed4dc932
Take the first step towards making LVI non-recursive: get rid of the LVIQuery abstraction.
...
llvm-svn: 121357
2010-12-09 06:14:58 +00:00
Eric Christopher
d9e8eac235
80-col fixups.
...
llvm-svn: 121356
2010-12-09 04:48:06 +00:00
Wesley Peck
4c196543f5
Reworking the stack layout generated by the MBlaze backend.
...
llvm-svn: 121355
2010-12-09 03:42:04 +00:00
Owen Anderson
817b7cd7b8
Fix encoding of the immediate operands on post-indexed LDR and friends.
...
llvm-svn: 121354
2010-12-09 02:56:12 +00:00
Dan Gohman
a32986e899
Really check that the bits that will become zero are actually already zero
...
before eliminating the operation that zeros them. This fixes rdar://8739316.
llvm-svn: 121353
2010-12-09 02:52:17 +00:00
Eric Christopher
2a2e65c452
Fix up some comments.
...
llvm-svn: 121351
2010-12-09 01:57:45 +00:00
Owen Anderson
3e6ee1db3e
Fix Thumb2 fixups for ldr.
...
llvm-svn: 121350
2010-12-09 01:51:07 +00:00
Jim Grosbach
6233189713
Add a textual message to the assert.
...
llvm-svn: 121349
2010-12-09 01:23:51 +00:00
Jim Grosbach
ed40288eb4
Add a sanity check assert() for t2ADD/SUBrSPi instructions that they really are
...
referencing the stack pointer as they say they are.
llvm-svn: 121347
2010-12-09 01:22:19 +00:00
Jim Grosbach
bd30afe4c2
When using multiple instructions to reference a frame index, make sure to
...
update the opcode when necessary as well as the source register.
llvm-svn: 121346
2010-12-09 01:22:13 +00:00
Jim Grosbach
0b2630c500
The add/sub SP instructions are really pseudos. The assembler should ignore
...
them.
llvm-svn: 121345
2010-12-09 01:21:27 +00:00
Jakob Stoklund Olesen
e6dc3c899e
IntervalMap iterators are heavyweight, so avoid copying them around and use
...
references instead.
Similarly, IntervalMap::begin() is almost as expensive as find(), so use find(x)
instead of begin().advanceTo(x);
This makes RegAllocBasic run another 5% faster.
llvm-svn: 121344
2010-12-09 01:06:52 +00:00
Matt Beaumont-Gay
eb369f84ec
Remove unused variables
...
llvm-svn: 121343
2010-12-09 01:04:43 +00:00
Owen Anderson
14e41271b7
Fix typo in Thumb2 branch fixup.
...
llvm-svn: 121342
2010-12-09 01:02:09 +00:00
Eric Christopher
8783074091
Stop confusing people, it's not really a chain, or a tumor.
...
llvm-svn: 121340
2010-12-09 00:57:19 +00:00
Bill Wendling
f75412dec7
Remove extraneous semicolon.
...
llvm-svn: 121338
2010-12-09 00:51:54 +00:00
Bill Wendling
c4d333f02a
Attempt to make the bit-twiddling readable resulted in the binary value being
...
overwritten.
llvm-svn: 121337
2010-12-09 00:44:33 +00:00
Bill Wendling
3392bfc8f3
The BLX instruction is encoded differently than the BL, because why not? In
...
particular, the immediate has 20-bits of value instead of 21. And bit 0 is '0'
always. Going through the BL fixup encoding was trashing the "bit 0 is '0'"
invariant.
Attempt to get the encoding at slightly more correct with this.
llvm-svn: 121336
2010-12-09 00:39:08 +00:00
Eric Christopher
d84970ae8b
Remove extraneous copy from DAG conversion for darwin tls. This was
...
popping up at O0 when it wasn't folded and the fast allocator would
complain.
llvm-svn: 121330
2010-12-09 00:27:58 +00:00
Owen Anderson
302d5fd0d8
Fix Thumb2 BCC encoding and fixups.
...
llvm-svn: 121329
2010-12-09 00:27:41 +00:00
Eric Christopher
c2dc95ae00
Add rsp to the uses for the same reason as 32-bit.
...
llvm-svn: 121328
2010-12-09 00:26:41 +00:00
Devang Patel
c26da9005b
DW_FORM_data1 may not provide sufficient room for vtable index, use _udata instead.
...
This fixes radar 8730409.
llvm-svn: 121323
2010-12-09 00:10:40 +00:00
Kevin Enderby
87bc591fc5
Allow a slash, '/', as a prefix separator for X86. rdar://8741045
...
llvm-svn: 121320
2010-12-08 23:57:59 +00:00
Jakob Stoklund Olesen
8c5f0c3115
Properly deal with empty intervals when checking for interference.
...
llvm-svn: 121319
2010-12-08 23:51:35 +00:00
Jason W Kim
e296ee830a
Style nit and whitespace cleanup
...
llvm-svn: 121317
2010-12-08 23:35:25 +00:00
Eric Christopher
6a21b40bd6
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
9672c9a793
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
a5c666654e
Fix T2TwoRegImm and use it for t2ADDrSPi12 and friends.
...
llvm-svn: 121314
2010-12-08 23:24:29 +00:00
Jason W Kim
ba8b6d9a1c
Removed dead comment.
...
llvm-svn: 121313
2010-12-08 23:19:44 +00:00
Jason W Kim
c79c5f6e8c
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
e829c674bb
T2TwoRegImm isn't right for t2SUBrSPi12. Use T2I instead.
...
llvm-svn: 121311
2010-12-08 23:13:01 +00:00
Jim Grosbach
fd0e4c0fe9
Add operand encoding for Thumb2 subw SP + imm. rdar://8745434
...
llvm-svn: 121310
2010-12-08 23:12:09 +00:00
Jim Grosbach
51937f9963
Add operand encoding for Thumb2 addw Rn + imm. rdar://8745434
...
llvm-svn: 121309
2010-12-08 23:04:16 +00:00
Bill Wendling
a7d6aa902a
Support the "target" encodings for the CB[N]Z instructions.
...
llvm-svn: 121308
2010-12-08 23:01:43 +00:00
Evan Cheng
7f3e9150d0
Fix an obvious cut-n-paste error.
...
llvm-svn: 121307
2010-12-08 23:01:18 +00:00
Jakob Stoklund Olesen
eaa650a945
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
663e4ce357
Add operand encoding for Thumb2 addw SP + imm. rdar://8745434
...
llvm-svn: 121305
2010-12-08 22:50:19 +00:00
Jim Grosbach
47e3cc54f8
Parameterize opcode encoding bits for Thumb2 extended precision integer
...
multiply instructions.
llvm-svn: 121301
2010-12-08 22:38:41 +00:00
Bob Wilson
4868ba0619
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
c3b0b10708
Fix operand encoding for Thumb2 extended precision multiplies. rdar://8745555
...
llvm-svn: 121297
2010-12-08 22:29:28 +00:00
Jakob Stoklund Olesen
e0df786c98
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
1b93e7b4ed
Reword comment slightly.
...
llvm-svn: 121293
2010-12-08 22:21:42 +00:00
Lang Hames
ce333073af
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
572e56dfb2
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
8817135cb9
Use type's file info while describing inheritance relationship.
...
llvm-svn: 121289
2010-12-08 21:46:37 +00:00
Bob Wilson
dbe9e7e3dd
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
bf74755e62
Remove unused function parameter.
...
llvm-svn: 121286
2010-12-08 21:39:00 +00:00
Eric Christopher
66a8bf57ea
Fix comment.
...
llvm-svn: 121285
2010-12-08 21:35:09 +00:00
Jakob Stoklund Olesen
310916a22d
Trim includes.
...
llvm-svn: 121283
2010-12-08 21:12:00 +00:00
Devang Patel
b68c6231e9
Add support to create debug info for functions and methods.
...
llvm-svn: 121281
2010-12-08 20:42:44 +00:00
Jim Grosbach
3c68561453
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
81c3c87717
Add support to create class type.
...
llvm-svn: 121279
2010-12-08 20:18:20 +00:00
Bob Wilson
194ad82666
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
00067fb147
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
55bc7187ac
Use this new fangled StringSwitch technology.
...
llvm-svn: 121273
2010-12-08 20:02:49 +00:00
Owen Anderson
dae32fd206
Improve comment.
...
llvm-svn: 121272
2010-12-08 19:31:11 +00:00
Jim Grosbach
d18f98b969
Add initializer.
...
llvm-svn: 121262
2010-12-08 15:36:45 +00:00
Bill Wendling
4182a16930
Cleanup table a bit.
...
llvm-svn: 121250
2010-12-08 13:03:15 +00:00
Evan Cheng
9d54ae6332
Add comments.
...
llvm-svn: 121238
2010-12-08 06:29:02 +00:00
Jakob Stoklund Olesen
b8812a1c15
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
7a05f00ade
Fix newlines.
...
llvm-svn: 121233
2010-12-08 02:46:25 +00:00
Daniel Dunbar
c1c4e9589a
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
8d842da572
Regenerate this for Daniel.
...
llvm-svn: 121227
2010-12-08 02:02:14 +00:00
Bill Wendling
8a6449c46e
Add support for loading from a constant pool.
...
llvm-svn: 121226
2010-12-08 01:57:09 +00:00
Devang Patel
89ea4f27a8
Add support to create vector, array, enums etc...
...
llvm-svn: 121224
2010-12-08 01:50:15 +00:00
Daniel Dunbar
21e71e948b
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
00e7a8459b
autoconf: Stop lying to me.
...
llvm-svn: 121222
2010-12-08 01:48:03 +00:00
Jim Grosbach
87055ed6f4
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
5885e99405
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
72ce453c73
Simplify the byte reordering logic slightly.
...
llvm-svn: 121216
2010-12-08 00:21:33 +00:00
Owen Anderson
0f7142d808
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
97b44b5b4a
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
dd261afdd9
Global variable does not need linkage name.
...
llvm-svn: 121212
2010-12-08 00:06:22 +00:00
Devang Patel
63f83cd861
Add support to create local variable's debug info.
...
llvm-svn: 121211
2010-12-07 23:58:00 +00:00
Bob Wilson
c40935fa0c
Add operators for vmlal{_n,_lane} and vmlsl{_n,_lane}
...
so they can be implemented without clang builtins.
llvm-svn: 121209
2010-12-07 23:53:37 +00:00
Bob Wilson
7a36c68748
Emit vmovl intrinsics first in the arm_neon.h header
...
so they can be used in the implementations of other intrinsics.
llvm-svn: 121208
2010-12-07 23:53:32 +00:00
Rafael Espindola
6624f47272
Layout each section independently. With the testcase in PR8711:
...
before:
4 assembler - Number of assembler layout and relaxation steps
78563 assembler - Number of emitted assembler fragments
8693904 assembler - Number of emitted object file bytes
271223 assembler - Number of evaluated fixups
330771677 assembler - Number of fragment layouts
5958 assembler - Number of relaxed instructions
2508361 mcexpr - Number of MCExpr evaluations
real 0m26.123s
user 0m25.694s
sys 0m0.388s
after:
4 assembler - Number of assembler layout and relaxation steps
78563 assembler - Number of emitted assembler fragments
8693904 assembler - Number of emitted object file bytes
271223 assembler - Number of evaluated fixups
231507 assembler - Number of fragment layouts
5958 assembler - Number of relaxed instructions
2508361 mcexpr - Number of MCExpr evaluations
real 0m2.500s
user 0m2.113s
sys 0m0.273s
And yes, the outputs are identical :-)
llvm-svn: 121207
2010-12-07 23:32:26 +00:00
Matt Beaumont-Gay
56de7c2773
Fix a warning about a variable which is only used in an assertion.
...
llvm-svn: 121206
2010-12-07 23:26:21 +00:00
Devang Patel
746660fc7b
Add support to create variables, structs etc.. using DIBuilder.
...
This is still work in progress.
llvm-svn: 121205
2010-12-07 23:25:47 +00:00
Jakob Stoklund Olesen
db357d71f1
Switch LiveIntervalUnion from std::set to IntervalMap.
...
This speeds up RegAllocBasic by 20%, not counting releaseMemory which becomes
way faster.
llvm-svn: 121201
2010-12-07 23:18:47 +00:00
Jakob Stoklund Olesen
e702cde2dd
Fix begin() and end() on const IntervalMap.
...
llvm-svn: 121200
2010-12-07 23:18:43 +00:00
Bill Wendling
f09c44c7ab
Cleanup in the Darwin end. No functionality change.
...
llvm-svn: 121198
2010-12-07 23:11:00 +00:00
Evan Cheng
775ead3293
Fix a bad prologue / epilogue codegen bug where the compiler would emit illegal
...
vpush instructions to save / restore VFP / NEON registers like this:
vpush {d8,d10,d11}
vpop {d8,d10,d11}
vpush and vpop do not allow gaps in the register list.
rdar://8728956
llvm-svn: 121197
2010-12-07 23:08:38 +00:00
Jim Grosbach
fb116aed60
Add source Record* reference to PatternToMatch. Allows better diagnostics.
...
llvm-svn: 121196
2010-12-07 23:05:49 +00:00
Bill Wendling
721724e643
A bit of cleanup: early exit ApplyFixup and cache the Fixup offset. No
...
functionality change.
llvm-svn: 121195
2010-12-07 23:05:20 +00:00
Bob Wilson
361afe4ef2
Add an operator for vdup_lane so it can be implemented without a clang builtin.
...
llvm-svn: 121190
2010-12-07 22:39:24 +00:00