Craig Topper
88097819fc
Tidy up spacing.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157313 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-23 05:44:51 +00:00
Chris Lattner
a48289a672
small refinement to r157218 to save a tiny amount of table size in the common
...
case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157312 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-23 05:19:18 +00:00
Craig Topper
82dd67a1c8
Fix indentation of wrapped line for readability. No functional change.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157309 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-23 03:59:53 +00:00
Eric Christopher
bb0f6eac1f
Add support for C++11 enum classes in llvm.
...
Part of rdar://11496790
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157303 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-23 00:09:20 +00:00
Nuno Lopes
2f0a748452
address some of John Criswell's comments
...
teach computeAllocSize about realloc, reallocf, and valloc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157298 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-22 22:02:19 +00:00
NAKAMURA Takumi
dd051a0414
ARMDisassembler.cpp: Fix utf8 char in comments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157292 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-22 21:47:02 +00:00
Eric Christopher
4d069bf8ec
Untabify and 80-col.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157274 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-22 18:45:24 +00:00
Eric Christopher
4a5d839dfa
Formatting consistency.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157273 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-22 18:45:18 +00:00
Jakob Stoklund Olesen
a9fdbbc55f
Also compute TopoSigs in synthetic register classes.
...
CodeGenRegisterClass has two constructors. Both need to compute the
TopoSigs BitVector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157271 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-22 18:20:28 +00:00
Nuno Lopes
49317e2df3
hopefully fix the CMake build. sorry for breakage
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157264 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-22 17:40:46 +00:00
Andrew Trick
3de8ad8bf9
LSR fix: add a missing phi check during IV hoisting.
...
Fixes PR12898: SCEVExpander crash.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157263 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-22 17:39:59 +00:00
Nuno Lopes
5c525b59d5
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157261 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-22 17:19:09 +00:00
Nuno Lopes
23e75da7e0
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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157255 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-22 15:25:31 +00:00
Jakob Stoklund Olesen
76ff741836
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157254 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-22 14:52:12 +00:00
Duncan Sands
5cdbb1de7d
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157251 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-22 14:17:53 +00:00
Craig Topper
85b9e56bac
Fix constant used for pshufb mask when lowering v16i8 shuffles. Bug introduced in r157043. Fixes PR12908.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157236 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-22 06:09:38 +00:00
Akira Hatanaka
18f3c78092
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157234 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-22 03:10:09 +00:00
Nuno Lopes
a7a2a3635f
fix the quotient returned by sdivrem() for the case when LHS is negative and RHS is positive
...
based on a patch by Preston Briggs, with some modifications
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157231 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-22 01:09:48 +00:00
Jim Grosbach
6b07bc604e
FileCheck'ize test, and add a bit to test for r157221.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157222 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-21 23:50:00 +00:00
Jim Grosbach
b3a119a257
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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157221 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-21 23:34:42 +00:00
Pete Cooper
b428511989
Added address space qualifier to intrinsic PointerType arguments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157218 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-21 23:21:28 +00:00
Owen Anderson
4b6e6750fe
Fix use of an unitialized value in the LegalizeOps expansion for ISD::SUB. No in-tree targets exercise this path.
...
Patch by Micah Villmow.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157215 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-21 22:39:20 +00:00
Jim Grosbach
b551f0cc78
Thumb2: RSB source register should be rGRP not GPRnopc.
...
t2RSB defined the operand correctly, but tRSBS didn't.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157200 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-21 17:57:17 +00:00
Dan Gohman
4c8f909cdf
Mark an unreachable region of code with llvm_unreachable.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157197 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-21 17:41:28 +00:00
Chad Rosier
f496deaa03
Typo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157195 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-21 17:13:41 +00:00
Owen Anderson
5b2d81bb50
Make it so that the MArch, MCPU, MAttrs passed to EngineBuilder are actually used.
...
Patch by Jose Fonseca.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157191 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-21 16:57:17 +00:00
Patrik Hägglund
8c3f33d337
test commit
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157184 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-21 13:18:06 +00:00
Stepan Dyatkovskiy
1c8f4b8c34
PR1255 (case ranges: work with ConstantRangesSet instead of ConstantInt) related changes for Execution and Verifier.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157183 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-21 10:44:40 +00:00
Craig Topper
8ae97baef2
Allow 256-bit shuffles to still be split even if only half of the shuffle comes from two 128-bit pieces.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157175 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-21 06:40:16 +00:00
Jakob Stoklund Olesen
1dc12aa148
Give a small negative bias to giant edge bundles.
...
This helps compile time when the greedy register allocator splits live
ranges in giant functions. Without the bias, we would try to grow
regions through the giant edge bundles, usually to find out that the
region became too big and expensive.
If a live range has many uses in blocks near the giant bundle, the small
negative bias doesn't make a big difference, and we still consider
regions including the giant edge bundle.
Giant edge bundles are usually connected to landing pads or indirect
branches.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157174 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-21 03:11:23 +00:00
Jakob Stoklund Olesen
857ed22604
Clear kill flags on the fly when joining intervals.
...
With physreg joining out of the way, it is easy to recognize the
instructions that need their kill flags cleared while testing for
interference.
This allows us to skip the final scan of all instructions for an 11%
speedup of the coalescer pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157169 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-20 21:41:05 +00:00
Nick Lewycky
529b8424f1
Add RPO to the lexicon.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157166 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-20 20:30:47 +00:00
Jakob Stoklund Olesen
53df9259e9
Make the global base reg GR32_NOSP.
...
It can sometimes be used in addressing modes that don't support %ESP.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157165 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-20 18:43:00 +00:00
Jakob Stoklund Olesen
418a3638ac
Constrain regclasses in PeepholeOptimizer.
...
It can be necessary to restrict to a sub-class before accessing
sub-registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157164 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-20 18:42:55 +00:00
Jakob Stoklund Olesen
0fda545c2c
Constrain register classes in TailDup.
...
When rewriting operands, make sure the new registers have a compatible
register class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157163 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-20 18:42:51 +00:00
Peter Collingbourne
92d63ccfc7
When legalising shifts, do not pre-build a list of operands which
...
may be RAUW'd by the recursive call to LegalizeOps; instead, retrieve
the other operands when calling UpdateNodeOperands. Fixes PR12889.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157162 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-20 18:36:15 +00:00
Benjamin Kramer
5875c33746
Emit memcmp directly from the StringMatcherEmitter.
...
There should be no difference in the resulting binary, given a sufficiently
smart compiler. However we already had compiler timeouts on the generated
code in Intrinsics.gen, this hopefully makes the lives of slow buildbots a
little easier.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157161 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-20 18:10:42 +00:00
Benjamin Kramer
6514551be7
Plug a leak when using MCJIT.
...
Found by valgrind.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157160 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-20 17:24:08 +00:00
Hal Finkel
2e8e5c0eca
Add a missing PPC 64-bit stwu pattern.
...
This seems to fix the remaining compile-time failures on PPC64 when
compiling with -enable-ppc-preinc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157159 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-20 17:11:24 +00:00
Benjamin Kramer
79485315cd
Use TargetMachine's register info instead of creating a new one and leaking it.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157155 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-20 11:24:27 +00:00
Jakob Stoklund Olesen
027c32a14e
Use the right register class for LDRrs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157152 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-20 06:38:47 +00:00
Jakob Stoklund Olesen
6e6269a976
Transfer memory operands to the right instruction.
...
They need to go on the PICLDR as the verifier points out.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157151 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-20 06:38:42 +00:00
Jakob Stoklund Olesen
ee0d5d4398
Properly constrain register classes for sub-registers.
...
Not all GR64 registers have sub_8bit sub-registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157150 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-20 06:38:37 +00:00
Jakob Stoklund Olesen
8e86929e3c
Properly constrain register classes in 2-addr.
...
X86 has 2-addr instructions with different constraints on the tied def
and use operands. One is GR32, one is GR32_NOSP.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157149 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-20 06:38:32 +00:00
Jakob Stoklund Olesen
4991de8fe1
Missed a push_back in r157147.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157148 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-20 05:28:53 +00:00
Jakob Stoklund Olesen
f0bf8b4018
Avoid deleting extra copies when RegistersDefinedFromSameValue is true.
...
This function adds copies to be erased to DupCopies, avoid also adding
them to DeadCopies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157147 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-20 04:52:48 +00:00
Jakob Stoklund Olesen
067fcb4087
Fix build bots.
...
Avoid looking at the operands of a potentially erased instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157146 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-20 03:57:12 +00:00
Jakob Stoklund Olesen
97769fcdd1
LiveRangeQuery simplifies shrinkToUses().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157145 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-20 02:54:52 +00:00
Jakob Stoklund Olesen
93e29ce066
Use LiveRangeQuery in ScheduleDAGInstrs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157144 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-20 02:44:38 +00:00
Jakob Stoklund Olesen
e1b93d2e86
Eliminate some uses of struct LiveRange.
...
That struct ought to be a LiveInterval implementation detail.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157143 91177308-0d34-0410-b5e6-96231b3b80d8
2012-05-20 02:44:36 +00:00