Chandler Carruth
7799a873bb
Switch attribute macros to use 'LLVM_' as a prefix. We retain the old names
...
until other LLVM projects using these are cleaned up.
llvm-svn: 117200
2010-10-23 08:10:43 +00:00
Chandler Carruth
25324e76ae
Fix a likely bug in an assertion by adding parentheses around '||'. This bug
...
was found by a GCC warning. ;]
llvm-svn: 117199
2010-10-23 07:46:14 +00:00
Mikhail Glushenkov
c99359bf34
Resurrect mcc16, it is useful as an example.
...
llvm-svn: 117198
2010-10-23 07:33:02 +00:00
Mikhail Glushenkov
858566ac15
Remove -llvmc-temp-hack from tblgen.
...
llvm-svn: 117197
2010-10-23 07:32:53 +00:00
Mikhail Glushenkov
7b1676ee96
Syntax tweak in llvmc: (something [a,b,c]) -> (something a, b, c).
...
llvm-svn: 117196
2010-10-23 07:32:46 +00:00
Mikhail Glushenkov
f04e60720e
Trailing whitespace.
...
llvm-svn: 117195
2010-10-23 07:32:37 +00:00
Evan Cheng
71b2f935db
Enable ARM fastcc.
...
llvm-svn: 117194
2010-10-23 02:19:37 +00:00
Evan Cheng
030f55c496
Properly model the latency of register defs which are 1) function returns or
...
2) live-outs.
Previously the post-RA schedulers completely ignore these dependencies since
returns, branches, etc. are all scheduling barriers. This patch model the
latencies between instructions being scheduled and the barriers. It also
handle calls by marking their register uses.
llvm-svn: 117193
2010-10-23 02:10:46 +00:00
Evan Cheng
132906a2d3
Latency between CPSR def and branch is zero.
...
llvm-svn: 117192
2010-10-23 02:04:38 +00:00
Jakob Stoklund Olesen
964f6a6be6
Verify LiveIntervals against the CFG, ensuring that live-in values are live-out
...
of all predecessors.
llvm-svn: 117191
2010-10-23 00:49:09 +00:00
Owen Anderson
1e091f8c58
Add tests for NEON encoding of vhsub.
...
llvm-svn: 117189
2010-10-22 23:58:22 +00:00
Jim Grosbach
6d65ad0408
Trailing whitespace.
...
llvm-svn: 117188
2010-10-22 23:48:29 +00:00
Jim Grosbach
7de028efd2
Add a CMP test.
...
llvm-svn: 117187
2010-10-22 23:48:01 +00:00
Owen Anderson
3416940e43
Add tests for NEON encoding of vsubw.
...
llvm-svn: 117186
2010-10-22 23:46:07 +00:00
Jim Grosbach
1df6f11838
tidy up
...
llvm-svn: 117185
2010-10-22 23:46:04 +00:00
Owen Anderson
a9c3c6c610
Add tests for NEON encoding of vsubl.
...
llvm-svn: 117183
2010-10-22 23:36:36 +00:00
Andrew Trick
4043309a54
Nonvirtual dtor that was accessible enough to be bad.
...
llvm-svn: 117180
2010-10-22 23:33:19 +00:00
Owen Anderson
8bc3d6ec45
Add tests for NEON encoding of vsub.
...
llvm-svn: 117177
2010-10-22 23:21:04 +00:00
Gabor Greif
6e58dbc9e4
fix memory-layout assumption which only holds on little-endian systems
...
llvm-svn: 117176
2010-10-22 23:16:11 +00:00
Andrew Trick
7a1dadd47d
This is a prototype of an experimental register allocation
...
framework. It's purpose is not to improve register allocation per se,
but to make it easier to develop powerful live range splitting. I call
it the basic allocator because it is as simple as a global allocator
can be but provides the building blocks for sophisticated register
allocation with live range splitting.
A minimal implementation is provided that trivially spills whenever it
runs out of registers. I'm checking in now to get high-level design
and style feedback. I've only done minimal testing. The next step is
implementing a "greedy" allocation algorithm that does some register
reassignment and makes better splitting decisions.
llvm-svn: 117174
2010-10-22 23:09:15 +00:00
Owen Anderson
2d807f4ed0
Add tests for NEON encoding of vqdmlsl.
...
llvm-svn: 117173
2010-10-22 23:08:47 +00:00
Bob Wilson
cefd7c2b60
Do not install libBugpointPasses.dylib for Apple builds. Radar 8585383.
...
llvm-svn: 117172
2010-10-22 23:04:17 +00:00
Owen Anderson
593d941f2f
Add tests for NEON encoding of vmlsl.
...
llvm-svn: 117171
2010-10-22 23:02:27 +00:00
Jakob Stoklund Olesen
c78f761faf
Add more verification of LiveIntervals.
...
llvm-svn: 117170
2010-10-22 22:48:58 +00:00
Jakob Stoklund Olesen
68258f467a
Be more strict about detecting multi-use blocks for isolation.
...
When a block has exactly two uses and the register is both live-in and live-out,
don't isolate the block. We would be inserting two copies, so we haven't really
made any progress.
If the live-in and live-out values separate into disconnected components after
splitting, we would be making progress. We can't detect that for now.
llvm-svn: 117169
2010-10-22 22:48:56 +00:00
Jim Grosbach
de52e11864
tidy up.
...
llvm-svn: 117166
2010-10-22 22:15:48 +00:00
Jim Grosbach
bba77cca02
ARM mode encoding information for CLZ, RBIT, REV*, and PKH*.
...
llvm-svn: 117165
2010-10-22 22:12:16 +00:00
Bob Wilson
ab226b9a10
Fix the name of libLLVMHello.dylib so that it does not get installed for
...
Apple builds. Radar 8585383.
llvm-svn: 117164
2010-10-22 22:10:57 +00:00
Jim Grosbach
172f52fb3d
Remove duplicate test.
...
llvm-svn: 117158
2010-10-22 22:04:28 +00:00
Jim Grosbach
3cb3f83374
tidy up.
...
llvm-svn: 117157
2010-10-22 22:01:56 +00:00
Jim Grosbach
4366bb4852
FileCheck-ize a few tests.
...
llvm-svn: 117156
2010-10-22 21:55:03 +00:00
Evan Cheng
2c2dcc69d8
Unbreak build.
...
llvm-svn: 117155
2010-10-22 21:49:09 +00:00
Bob Wilson
0290dbe7d4
Teach instcombine to set the alignment arguments for NEON load/store intrinsics.
...
llvm-svn: 117154
2010-10-22 21:41:48 +00:00
Evan Cheng
20b70697bb
Transfer implicit ops when forming load multiple and return instructions.
...
llvm-svn: 117151
2010-10-22 21:29:58 +00:00
Owen Anderson
8c38a57413
Add tests for the correct encoding of NEON vmls.
...
llvm-svn: 117145
2010-10-22 20:31:24 +00:00
Jakob Stoklund Olesen
de1439ce2b
Be more strict when detecting critical edges before loop splitting.
...
An exit block with a critical edge must only have predecessors in the loop, or
just before the loop. This guarantees that the inserted copies in the loop
predecessors dominate the exit block.
llvm-svn: 117144
2010-10-22 20:28:23 +00:00
Jakob Stoklund Olesen
967bcbf445
Add print methods
...
llvm-svn: 117143
2010-10-22 20:28:21 +00:00
Owen Anderson
424434414e
Add correct NEON encodings for vqdmlal.
...
llvm-svn: 117134
2010-10-22 19:35:48 +00:00
Jim Grosbach
10195e9b73
Add the encoding information for the rest of the ARM mode multiply instructions.
...
llvm-svn: 117133
2010-10-22 19:15:30 +00:00
Michael J. Spencer
81bb7d4ad7
I hate line endings.
...
llvm-svn: 117132
2010-10-22 19:14:39 +00:00
Owen Anderson
2bbdc62e17
Provide correct encodings for NEON vmlal.
...
llvm-svn: 117131
2010-10-22 19:05:25 +00:00
Oscar Fuentes
487431ce82
Loadable modules are not supported on Cygwin. PR 6655.
...
llvm-svn: 117130
2010-10-22 19:03:24 +00:00
Evan Cheng
e5b7a3a09f
Silence compiler warnings.
...
llvm-svn: 117128
2010-10-22 18:57:05 +00:00
Owen Anderson
ada2b33321
Provide correct NEON encodings for vmla.
...
llvm-svn: 117126
2010-10-22 18:54:37 +00:00
Michael J. Spencer
8daaefa006
Endian: Get rid of LLVM_IS_HOST_BIG_ENDIAN.
...
llvm-svn: 117124
2010-10-22 18:45:12 +00:00
Stuart Hastings
772bf86028
Temporarily revert r117079; it broke a tester. Radar 6635085.
...
llvm-svn: 117122
2010-10-22 18:44:22 +00:00
Jim Grosbach
ca2897a0ca
More ARM multiply instuction binary encodings.
...
llvm-svn: 117121
2010-10-22 18:35:16 +00:00
Evan Cheng
efac5b5f8d
Add fastcc cc: pass and return VFP / NEON values in registers. Controlled by -arm-fastcc for now.
...
llvm-svn: 117119
2010-10-22 18:23:05 +00:00
Owen Anderson
399ec622e4
Add testscases for encoding of NEON vdqmull.
...
llvm-svn: 117115
2010-10-22 17:57:37 +00:00
Jim Grosbach
eabb7c5bd1
Parameterize a bit of ARM encoding information, simplifying some instruction
...
definitions.
llvm-svn: 117114
2010-10-22 17:42:06 +00:00