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
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
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
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
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
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
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
Patrik Hägglund
6f837093ba
Fixed typo in r156905.
...
llvm-svn: 157320
2012-05-23 12:34:56 +00:00
Patrik Hägglund
822fe63c97
Small fix for the debug output from PBQP (PR12822).
...
llvm-svn: 157319
2012-05-23 12:12:58 +00:00
Evgeniy Stepanov
3519d90668
Use zero-based shadow by default on Android.
...
llvm-svn: 157317
2012-05-23 11:52:12 +00:00
Stepan Dyatkovskiy
49092667b1
PR1255(case ranges) related changes in Local Transformations.
...
llvm-svn: 157315
2012-05-23 08:18:26 +00:00
Craig Topper
49c52dde2b
Tidy up spacing.
...
llvm-svn: 157313
2012-05-23 05:44:51 +00:00
Chris Lattner
9b30a6d7da
small refinement to r157218 to save a tiny amount of table size in the common
...
case.
llvm-svn: 157312
2012-05-23 05:19:18 +00:00
Craig Topper
5161134794
Fix indentation of wrapped line for readability. No functional change.
...
llvm-svn: 157309
2012-05-23 03:59:53 +00:00
Eric Christopher
809a39bd54
Add support for C++11 enum classes in llvm.
...
Part of rdar://11496790
llvm-svn: 157303
2012-05-23 00:09:20 +00:00
Nuno Lopes
1a989d236d
address some of John Criswell's comments
...
teach computeAllocSize about realloc, reallocf, and valloc
llvm-svn: 157298
2012-05-22 22:02:19 +00:00
NAKAMURA Takumi
ef6f526307
ARMDisassembler.cpp: Fix utf8 char in comments.
...
llvm-svn: 157292
2012-05-22 21:47:02 +00:00
Eric Christopher
7b3899918f
Untabify and 80-col.
...
llvm-svn: 157274
2012-05-22 18:45:24 +00:00
Eric Christopher
a087fadf96
Formatting consistency.
...
llvm-svn: 157273
2012-05-22 18:45:18 +00:00
Nuno Lopes
73d40438e2
hopefully fix the CMake build. sorry for breakage
...
llvm-svn: 157264
2012-05-22 17:40:46 +00:00
Andrew Trick
bb5824688b
LSR fix: add a missing phi check during IV hoisting.
...
Fixes PR12898: SCEVExpander crash.
llvm-svn: 157263
2012-05-22 17:39:59 +00:00
Nuno Lopes
114b8eaa9c
add a new pass to instrument loads and stores for run-time bounds checking
...
move EmitGEPOffset from InstCombine to Transforms/Utils/Local.h
(a draft of this) patch reviewed by Andrew, thanks.
llvm-svn: 157261
2012-05-22 17:19:09 +00:00
Nuno Lopes
944814b41a
revert my previous patches that introduced an additional parameter to the objectsize intrinsic.
...
After a lot of discussion, we realized it's not the best option for run-time bounds checking
llvm-svn: 157255
2012-05-22 15:25:31 +00:00
Jakob Stoklund Olesen
151b044b75
Only erase virtregs with no uses left.
...
Also make sure registers aren't erased twice if the dead def mentions
the register twice.
This fixes PR12911.
llvm-svn: 157254
2012-05-22 14:52:12 +00:00
Duncan Sands
39edcc75ac
Fix PR12858, a crash due to GVN's PRE not fully removing an instruction from the
...
leader table. That's because it wasn't expecting instructions to turn up as
leader for a value number that is not its own, but equality propagation could
create this situation. One solution is to have the leader table use a WeakVH
but this slows down GVN by about 5%. Instead just have equality propagation not
add instructions to the leader table, only constants and arguments. In theory
this might cause GVN to run more (each time it changes something it runs again)
but it doesn't seem to occur enough to cause a slow down.
llvm-svn: 157251
2012-05-22 14:17:53 +00:00
Craig Topper
0fe3f1297b
Fix constant used for pshufb mask when lowering v16i8 shuffles. Bug introduced in r157043. Fixes PR12908.
...
llvm-svn: 157236
2012-05-22 06:09:38 +00:00
Akira Hatanaka
2a600ff5f4
This patch adds a predicate to existing mips32 and mips64 so that those
...
instruction encodings can be excluded during mips16 processing.
This revision fixes the issue raised by Jim Grosbach.
bool hasStandardEncoding() const { return !inMips16Mode(); }
When micromips is added it will be
bool StandardEncoding() const { return !inMips16Mode()&& !inMicroMipsMode(); }
No additional testing is needed other than to assure that there is no regression
from this patch.
Patch by Reed Kotler.
llvm-svn: 157234
2012-05-22 03:10:09 +00:00
Jim Grosbach
6e9ef9c931
ARM: .end_data_region mismatch in Thumb2.
...
32-bit offset jump tables just use real branch instructions and so aren't
marked as data regions. We were still emitting the .end_data_region
marker though, which assert()ed.
rdar://11499158
llvm-svn: 157221
2012-05-21 23:34:42 +00:00
Pete Cooper
869fc085f9
Added address space qualifier to intrinsic PointerType arguments.
...
llvm-svn: 157218
2012-05-21 23:21:28 +00:00
Owen Anderson
da2ddf18dc
Fix use of an unitialized value in the LegalizeOps expansion for ISD::SUB. No in-tree targets exercise this path.
...
Patch by Micah Villmow.
llvm-svn: 157215
2012-05-21 22:39:20 +00:00
Jim Grosbach
85edf59851
Thumb2: RSB source register should be rGRP not GPRnopc.
...
t2RSB defined the operand correctly, but tRSBS didn't.
llvm-svn: 157200
2012-05-21 17:57:17 +00:00
Dan Gohman
992a69b57c
Mark an unreachable region of code with llvm_unreachable.
...
llvm-svn: 157197
2012-05-21 17:41:28 +00:00
Chad Rosier
8d8d0f7479
Typo.
...
llvm-svn: 157195
2012-05-21 17:13:41 +00:00
Owen Anderson
6187e32939
Make it so that the MArch, MCPU, MAttrs passed to EngineBuilder are actually used.
...
Patch by Jose Fonseca.
llvm-svn: 157191
2012-05-21 16:57:17 +00:00