1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 03:53:04 +02:00
Commit Graph

66032 Commits

Author SHA1 Message Date
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
Oscar Fuentes
b7f2510588 Avoid stalled file dependency when tablegenning.
Patch by Frits van Bommel!

llvm-svn: 117113
2010-10-22 17:37:42 +00:00
Benjamin Kramer
9e988fe81e Make some symbols static, move classes into anonymous namespaces.
llvm-svn: 117111
2010-10-22 17:35:07 +00:00
Oscar Fuentes
bd0ca690c8 Don't try to guess svn version when current path is a symlink.
See PR 8473.

llvm-svn: 117109
2010-10-22 17:16:26 +00:00
Jim Grosbach
0ae6bf8095 More ARM multiply instruction encoding information.
llvm-svn: 117108
2010-10-22 17:16:17 +00:00
Oscar Fuentes
e9b7aa0d30 Teach CMake to only touch tablegen-generated files if anything
actually changed.

Patch by Frits van Bommel!

llvm-svn: 117102
2010-10-22 16:20:10 +00:00