Chris Lattner
3d4ad297c1
strength reduce anonymous namespace to static.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78417 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-07 22:27:19 +00:00
Chris Lattner
23510d36ac
tidy up
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78416 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-07 22:26:50 +00:00
Bill Wendling
1232167ce3
Reformatting of lines. Put multiple DEBUG statements under one DEBUG statement.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78411 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-07 21:33:25 +00:00
Evan Cheng
d77c7aba83
Thumb2 32-bit ldm / stm needs .w suffix if submode is ia.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78410 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-07 21:19:10 +00:00
Daniel Dunbar
2234e5eee6
llvm-mc/AsmMatcher: Move emit for register -> enum matcher into a separate routine.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78408 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-07 21:01:44 +00:00
Daniel Dunbar
ef80fe1025
XFAIL 2006-11-06-StackTrace.cpp on powerpc-apple-darwin9 until someone feels
...
motivated to fix it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78406 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-07 20:50:58 +00:00
Daniel Dunbar
482cccd37e
MSVC warning fixes; patch by Stein Roger!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78405 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-07 20:50:09 +00:00
Daniel Dunbar
2724915c17
llvm-mc/AsmMatcher: Tweaks in response to feedback.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78404 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-07 20:33:39 +00:00
Jeffrey Yasskin
0d5bd59553
To catch bugs like the one fixed in
...
http://llvm.org/viewvc/llvm-project?view=rev&revision=78127 , I'm changing the
ExecutionEngine's global mappings to hold AssertingVH<const GlobalValue>. That
way, if unregistering a mapping fails to actually unregister it, we'll get an
assert. Running the jit nightly tests didn't uncover any actual instances of
the problem.
This also uncovered the fact that AssertingVH<const X> didn't work, so I fixed
that too.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78400 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-07 19:54:29 +00:00
Evan Cheng
f12288e8aa
This is done.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78399 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-07 19:34:52 +00:00
Evan Cheng
e118cb6146
Use 16-bit tMOVgpr2gpr instead of tMOVr to copy GPR registers in Thumb2 mode.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78398 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-07 19:34:35 +00:00
Evan Cheng
1d2426c470
Fix support to use NEON for single precision fp math.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78397 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-07 19:30:41 +00:00
Andreas Bolka
699db99c1a
SIV/MIV classification for LDA.
...
LoopDependenceAnalysis::getLoops is currently O(N*M) for a loop-nest of
depth N and a compound SCEV of M atomic SCEVs. As both N and M will
typically be very small, this should not be a problem. If it turns out
to be one, rewriting getLoops as SCEVVisitor will reduce complexity to
O(M).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78394 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-07 18:23:41 +00:00
Dale Johannesen
1c5a28706d
Rewrite previous patch to follow Chris' stylistic
...
preference; no functional change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78391 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-07 17:41:29 +00:00
Devang Patel
b7f40c1a2a
Fix dom frontier update. This fixes PR4667.
...
Patch by Jakub Staszak.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78388 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-07 17:16:44 +00:00
Andreas Bolka
bdab0e9695
Fix Strong-SIV testcase.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78384 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-07 15:42:32 +00:00
Sanjiv Gupta
394a1a21a1
Minor fixes to avoid using invalid debugloc.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78383 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-07 11:00:02 +00:00
Benjamin Kramer
b8d222def1
Simplify code and avoid allocations.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78382 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-07 10:42:28 +00:00
Daniel Dunbar
6812cd18aa
Improve disabling of X86 AsmMatcher.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78381 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-07 09:06:38 +00:00
Daniel Dunbar
7ddca30f31
Disable X86 AsmMatcher for now, it is causing gcc-4.0 to run out of memory on
...
i386-apple-darwin9. This presumably will get fixed once the generated code
improves.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78379 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-07 08:45:03 +00:00
Daniel Dunbar
20927f26fc
llvm-mc/AsmMatcher: Move to a slightly more sane matching design.
...
- Still not very sane, but a least its not 60k lines on X86. :)
- In terms of correctness, currently some things are hard wired for X86, and we
still don't properly resolve ambiguities (this is ignoring the instructions
we don't even match due to funny .td stuff or other corner cases).
The high level changes:
1. Represent tokens which are significant for matching explicitly as separate
operands. This uniformly handles not only the instruction mnemonic, but
also 'signficiant' syntax like the '*' in "call * ...".
2. Separate the matching of operands to an instruction from the construction of
the MCInst. In theory this can be done during matching, but since the number
of variations is small I think it makes sense to decompose the problems.
3. Improved a few of the mechanisms to at least successfully flatten / tokenize
the assembly strings for PowerPC and ARM.
4. The comment at the top of AsmMatcherEmitter.cpp explains the approach I'm
moving towards for handling ambiguous instructions. The high-bit is to infer
a partial ordering of the operand classes (and force the user to specify one
if we can't) and use that to resolve ambiguities.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78378 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-07 08:26:05 +00:00
Evan Cheng
b6879b2b84
Error out, rather than infinite looping, if constant island pass can't converge.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78377 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-07 07:35:21 +00:00
Evan Cheng
15c592ddff
Another coalescer bug. When a dead copy is eliminated, transfer the kill to a def of the exact register rather than a super-register.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78376 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-07 07:14:14 +00:00
Evan Cheng
53c67c0218
tBfar is bl, which clobbers LR.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78370 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-07 05:45:07 +00:00
Sanjiv Gupta
85019e15eb
Run memsel inserter just before emit assembly to avoid tinkering by other passes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78369 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-07 05:44:27 +00:00
Daniel Dunbar
08ada178b8
Update CMake.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78367 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-07 03:59:06 +00:00
Daniel Dunbar
0912e585b8
Remove unused function.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78366 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-07 03:52:07 +00:00
Andrew Lenharth
a3c6073fd3
These should be expanded
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78365 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-07 02:17:44 +00:00
Dan Gohman
1eaf391458
Use std::string() instead of std::string("").
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78364 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-07 01:43:45 +00:00
Dan Gohman
7db949df78
Fix a bunch of namespace pollution.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78363 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-07 01:32:21 +00:00
Dan Gohman
748f98f908
Fix a typo in a comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78362 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-07 01:26:06 +00:00
Evan Cheng
861986401e
It turns out most of the thumb2 instructions are not allowed to touch SP. The semantics of such instructions are unpredictable. We have just been lucky that tests have been passing.
...
This patch takes pain to ensure all the PEI lowering code does the right thing when lowering frame indices, insert code to manipulate stack pointers, etc. It's also custom lowering dynamic stack alloc into pseudo instructions so we can insert the right instructions at scheduling time.
This fixes PR4659 and PR4682.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78361 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-07 00:34:42 +00:00
Evan Cheng
3a3cce59c4
Code clean up.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78360 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-07 00:28:58 +00:00
Lang Hames
caaf120a67
Added legal stuff, fixed some formatting issues. Removed the graph generator stuff as it was only meant for debugging the solver.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78359 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-07 00:25:12 +00:00
Dale Johannesen
4a20e518c7
Add the testcase from PR 4668. This works at the
...
moment, but it's a fragile area.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78358 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-07 00:04:42 +00:00
Lang Hames
6699fb2709
New C++ PBQP solver. Currently about as fast (read _slow_) as the old C based solver, but I'll be working to improve that. The PBQP allocator has been updated to use the new solver.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78354 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-06 23:32:48 +00:00
Dale Johannesen
14e545d18e
Fix PR 4626, a crash in branch folding after OptimizeBlock
...
produced a CFG it wasn't prepared for.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78351 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-06 22:56:40 +00:00
Dale Johannesen
76711246d9
Use stripPointerCasts instead of partially rewriting it.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78350 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-06 22:45:51 +00:00
Jakob Stoklund Olesen
268e35d99f
Vanity.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78345 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-06 21:54:23 +00:00
Nicolas Geoffray
6f62cffd63
Output the new StructType constructor, which takes the context of the
...
module as first argument.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78340 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-06 21:31:35 +00:00
Jakob Stoklund Olesen
31f5591c91
Get rid of RegScavenger::backwards() before the bitrot spreads.
...
If we need it one day, there is nothing wrong with putting it back in.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78337 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-06 21:19:03 +00:00
Devang Patel
bceda93251
Remove dead code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78335 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-06 20:57:44 +00:00
Devang Patel
2251666d44
Use DebugInfoFinder
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78334 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-06 20:53:24 +00:00
Devang Patel
734068a90f
Use DebugInfoFinder.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78333 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-06 20:53:06 +00:00
Bob Wilson
b36ec86c01
Implement Neon VST[234] operations.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78330 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-06 18:47:44 +00:00
Bob Wilson
004f7c7049
Fix incorrect intrinsic declarations.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78329 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-06 18:46:26 +00:00
Dale Johannesen
27698ebdf8
Testcase for llvm-gcc 78324 (although in normal
...
testing mode it won't test much).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78325 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-06 17:28:23 +00:00
Dan Gohman
8e1593ec36
Tidy up this testcase.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78322 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-06 17:11:55 +00:00
David Goodwin
8b7d7ade85
Add parameter to pattern classes to enable an itinerary to be specified for instructions. For now just use the existing itineraries or NoItinerary.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78321 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-06 16:52:47 +00:00
Chris Lattner
24f654c8a4
Fix several fixmes and clean up code by sinking *all* section
...
creation activity into the target-specific subclasses of TLOF.
Before this, globals with explicit sections could be created by
the base class.
1. make getOrCreateSection protected, add a new getExplicitSectionGlobal
pure virtual method to assign sections to globals with a specified
section.
2. eliminate getSpecialCasedSectionGlobals, which is now PIC specific.
3. eliminate the getKindForNamedSection virtual method, which is
now just a static method for ELF.
4. Add implementions of getExplicitSectionGlobal for ELF/PECOFF/Darwin/PIC16.
They are now all detangled and understandable, woo! :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78319 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-06 16:39:58 +00:00