Jakob Stoklund Olesen
87e444d0a5
Compress MCRegisterInfo register name tables.
...
Store (debugging) register names as offsets into a string table instead
of as char pointers.
llvm-svn: 157449
2012-05-25 00:21:41 +00:00
Eli Friedman
d89582030a
Simplify code for calling a function where CanLowerReturn fails, fixing a small bug in the process.
...
llvm-svn: 157446
2012-05-25 00:09:29 +00:00
Kaelyn Uhrain
74138c341a
Silence unused variable warnings from when assertions are disabled.
...
llvm-svn: 157438
2012-05-24 23:37:49 +00:00
Andrew Trick
72d8f7c1df
misched: Use the same scheduling heuristics with -misched-topdown/bottomup.
...
(except the part about choosing direction)
llvm-svn: 157437
2012-05-24 23:11:17 +00:00
Jakob Stoklund Olesen
d695e1cc67
Shrink.
...
llvm-svn: 157433
2012-05-24 22:17:44 +00:00
Jakob Stoklund Olesen
e263c35c03
Add support for range expressions in TableGen foreach loops.
...
Like this:
foreach i = 0-127 in ...
Use braces for composite ranges:
foreach i = {0-3,9-7} in ...
llvm-svn: 157432
2012-05-24 22:17:39 +00:00
Jakob Stoklund Olesen
4d1e62df51
Don't put TGParser scratch results in the output.
...
Only fully expanded Records should go into RecordKeeper.
llvm-svn: 157431
2012-05-24 22:17:36 +00:00
Jakob Stoklund Olesen
34ca22c4f0
Simplify TGParser::ProcessForEachDefs.
...
Use static type checking.
llvm-svn: 157430
2012-05-24 22:17:33 +00:00
Andrew Trick
699439a90d
misched: Trace regpressure.
...
llvm-svn: 157429
2012-05-24 22:11:14 +00:00
Andrew Trick
95b9cef3da
misched: Give each ReadyQ a unique ID
...
llvm-svn: 157428
2012-05-24 22:11:12 +00:00
Andrew Trick
3152745a8f
misched: Added ScoreboardHazardRecognizer.
...
The Hazard checker implements in-order contraints, or interlocked
resources. Ready instructions with hazards do not enter the available
queue and are not visible to other heuristics.
The major code change is the addition of SchedBoundary to encapsulate
the state at the top or bottom of the schedule, including both a
pending and available queue.
The scheduler now counts cycles in sync with the hazard checker. These
are minimum cycle counts based on known hazards.
Targets with no itinerary (x86_64) currently remain at cycle 0. To fix
this, we need to provide some maximum issue width for all targets. We
also need to add the concept of expected latency vs. minimum latency.
llvm-svn: 157427
2012-05-24 22:11:09 +00:00
Andrew Trick
5ca7d67b39
misched: Release bottom roots in reverse order.
...
llvm-svn: 157426
2012-05-24 22:11:05 +00:00
Andrew Trick
0e174b3a0e
misched: rename ReadyQ class
...
llvm-svn: 157425
2012-05-24 22:11:03 +00:00
Andrew Trick
155f812f54
misched: copy comments so compareRPDelta is readable by itself.
...
llvm-svn: 157424
2012-05-24 22:11:01 +00:00
Andrew Trick
523d3614e0
regpressure: Added RegisterPressure::dump
...
llvm-svn: 157423
2012-05-24 22:10:59 +00:00
Andrew Trick
d0de06a312
regpressure: physreg livein/out fix
...
llvm-svn: 157422
2012-05-24 22:10:57 +00:00
David Blaikie
74e7769ec9
Fix for CHECK-NOT misspelling.
...
Patch by Nicklas Bo Jensen.
llvm-svn: 157421
2012-05-24 22:08:29 +00:00
Justin Holewinski
ee3de35dee
Remove the PTX back-end and all of its artifacts (triple, etc.)
...
This back-end was deprecated in favor of the NVPTX back-end.
NV_CONTRIB
llvm-svn: 157417
2012-05-24 21:38:21 +00:00
Owen Anderson
03e1ab9c5b
Teach tblgen's set theory "sequence" operator to support an optional stride operand.
...
llvm-svn: 157416
2012-05-24 21:37:08 +00:00
Chad Rosier
f365172309
Typo. Patch by Nicklas Bo Jensen <nbjensen@gmail.com>.
...
llvm-svn: 157415
2012-05-24 21:17:47 +00:00
Akira Hatanaka
a169c70246
Turn on mips16 pseudo op when compiling for mips16.
...
Expand test case for this.
Patch by Reed Kotler.
llvm-svn: 157410
2012-05-24 18:37:43 +00:00
Akira Hatanaka
44ebe6c79d
Enable Mips16 compiler to compile a null program.
...
First code from the Mips16 compiler. Includes trivial test program.
Patch by Reed Kotler.
llvm-svn: 157408
2012-05-24 18:32:33 +00:00
David Blaikie
93e40b754a
Silence Clang's -Wlogical-op-parentheses warning.
...
I'm not sure it's really worth expressing this as a range rather than 3 specific equalities, but it doesn't seem fundamentally wrong either.
llvm-svn: 157398
2012-05-24 17:11:00 +00:00
Tobias Grosser
acbe458a3f
Add half support to LLVM (for OpenCL)
...
Submitted by: Anton Lokhmotov <Anton.Lokhmotov@arm.com>
Approved by: o Anton Korobeynikov
o Micah Villmow
o David Neto
llvm-svn: 157393
2012-05-24 15:59:06 +00:00
Meador Inge
46482b6a11
Testing commit access
...
llvm-svn: 157389
2012-05-24 14:20:13 +00:00
Stepan Dyatkovskiy
547b0e29d9
PR1255 related changes (case ranges):
...
LowerSwitch::Clusterify : main functinality was replaced with CRSBuilder::optimize, so big part of Clusterify's code was reduced.
test/Transform/LowerSwitch/feature.ll - this test was refactored: grep + count was replaced with FileCheck usage.
llvm-svn: 157384
2012-05-24 09:33:20 +00:00
Patrik Hägglund
c4698b4c42
Fix -Wcovered-switch-default warning.
...
llvm-svn: 157381
2012-05-24 07:51:46 +00:00
Craig Topper
155599cf7a
Convert assert(0) to llvm_unreachable.
...
llvm-svn: 157380
2012-05-24 07:02:50 +00:00
Bill Wendling
0528ea62b4
Remove old release notes. Ready them for additions from current development
...
cycle.
llvm-svn: 157378
2012-05-24 06:38:09 +00:00
Craig Topper
936702e142
Mark some static arrays as const.
...
llvm-svn: 157377
2012-05-24 06:35:32 +00:00
Craig Topper
c7b86c787d
Use uint16_t to store registers in static tables. Matches other tables.
...
llvm-svn: 157375
2012-05-24 06:09:56 +00:00
Craig Topper
c5bd0cba8f
Use uint16_t to store register number in static tables to match other tables.
...
llvm-svn: 157374
2012-05-24 05:55:47 +00:00
Craig Topper
082149564d
Make some opcode tables static and const. Allows code to avoid making copies to pass the tables around.
...
llvm-svn: 157373
2012-05-24 05:17:00 +00:00
Joel Jones
b745d998b1
Reflect that tblgen is now llvm-tblgen
...
llvm-svn: 157371
2012-05-24 04:38:50 +00:00
Craig Topper
ed31fb2ec5
Mark a couple arrays as static and const. Use array_lengthof instead of sizeof/sizeof.
...
llvm-svn: 157369
2012-05-24 04:22:05 +00:00
Craig Topper
a34cbd451f
Mark a static array as const.
...
llvm-svn: 157368
2012-05-24 04:11:15 +00:00
Craig Topper
2efe750a91
Mark a static table as const. Shrink opcode size in static tables to uint16_t. Simplify loop iterating over one of those tables. No functional change intended.
...
llvm-svn: 157367
2012-05-24 03:59:11 +00:00
Chad Rosier
b11b7f8b69
Tidy up naming for consistency and other cleanup. No functional change intended.
...
llvm-svn: 157358
2012-05-23 23:45:10 +00:00
Jakob Stoklund Olesen
c2da6e579e
Add a test case for global live range splitting.
...
llvm-svn: 157357
2012-05-23 23:42:23 +00:00
Jakob Stoklund Olesen
2313afcd00
Add a last resort tryInstructionSplit() to RAGreedy.
...
Live ranges with a constrained register class may benefit from splitting
around individual uses. It allows the remaining live range to use a
larger register class where it may allocate. This is like spilling to a
different register class.
This is only attempted on constrained register classes.
<rdar://problem/11438902>
llvm-svn: 157354
2012-05-23 22:37:27 +00:00
Bill Wendling
ad5fae97e3
Forgot to reverse conditional.
...
llvm-svn: 157349
2012-05-23 22:12:50 +00:00
Bill Wendling
9235b4e8b1
Reduce indentation by early detection of 'continue'. No functionality change.
...
llvm-svn: 157348
2012-05-23 22:09:50 +00:00
Nicolas Geoffray
bf7155d836
llvm-ld does not exist anymore, use llvm-link instead.
...
llvm-svn: 157342
2012-05-23 20:34:19 +00:00
Kaelyn Uhrain
148e4135bf
Fix typo in flag to opt, and also a CHECK-NEXT that doesn't follow a
...
CHECK. The latter error was hidden by the former, and the test harness
used by e.g. "make check" silently ignored that opt was printing an
error message about an unknown flag instead of running on the test file.
llvm-svn: 157341
2012-05-23 20:21:36 +00:00
Jakob Stoklund Olesen
ce44a7a9ae
Correctly deal with identity copies in RegisterCoalescer.
...
Now that the coalescer keeps live intervals and machine code in sync at
all times, it needs to deal with identity copies differently.
When merging two virtual registers, all identity copies are removed
right away. This means that other identity copies must come from
somewhere else, and they are going to have a value number.
Deal with such copies by merging the value numbers before erasing the
copy instruction. Otherwise, we leave dangling value numbers in the live
interval.
This fixes PR12927.
llvm-svn: 157340
2012-05-23 20:21:06 +00:00
Tim Northover
62cf7e738b
Fix how CMake appends -m32 to linker command-lines
...
llvm-svn: 157337
2012-05-23 18:42:02 +00:00
Chad Rosier
d9dca3aef3
[arm-fast-isel] Add support for non-global callee.
...
Patch by Jush Lu <jush.msn@gmail.com>.
llvm-svn: 157336
2012-05-23 18:38:57 +00:00
Nuno Lopes
36f35477a1
BoundsChecking: add a couple of simple tests and fix a bug in branch emition
...
llvm-svn: 157329
2012-05-23 16:24:52 +00:00
Nuno Lopes
68aaef6b21
revert r156383: removal of TYPE_CODE_FUNCTION_OLD
...
Apparently LLVM only stopped emitting this after LLVM 3.0
llvm-svn: 157325
2012-05-23 15:19:39 +00:00
Patrik Hägglund
51776725b8
Fix the inliner so that the optsize function attribute don't alter the
...
inline threshold if the global inline threshold is lower (as for -Oz).
Reviewed by Chandler Carruth and Bill Wendling.
llvm-svn: 157323
2012-05-23 13:42:57 +00:00