Bruno Cardoso Lopes
77954bdf7a
Support very basic (doesn't include ABI support in the front-end, varags, ...) 256-bit argument passing and return for AVX
...
llvm-svn: 110394
2010-08-05 23:35:51 +00:00
Dan Gohman
884dd752c3
Implement AccessesArguments checking in the two-callsite form
...
of BasicAA::getModRefInfo. This allows BasicAA to say that two
memset calls to non-aliasing memory locations don't interfere.
llvm-svn: 110393
2010-08-05 23:34:50 +00:00
Dan Gohman
e2a67168bf
Yes, we can do better, but this is not the place for it.
...
llvm-svn: 110391
2010-08-05 23:23:32 +00:00
Owen Anderson
0f306a45ad
Add the beginnings of infrastructure for range tracking.
...
llvm-svn: 110388
2010-08-05 22:59:19 +00:00
Eric Christopher
b7ad70d1e8
Revert my last commit, apparently it's a runtime issue.
...
llvm-svn: 110387
2010-08-05 22:48:32 +00:00
Jakob Stoklund Olesen
e7709ebb64
Add basic verification of LiveIntervals.
...
We verify that the LiveInterval is live at uses and defs, and that all
instructions have a SlotIndex.
Stuff we don't check yet:
- Is the LiveInterval minimal?
- Do all defs correspond to instructions or phis?
- Do all defs dominate all their live ranges?
- Are all live ranges continually reachable from their def?
llvm-svn: 110386
2010-08-05 22:32:21 +00:00
Eric Christopher
d7d0517cc2
Remove unnecessary include.
...
llvm-svn: 110385
2010-08-05 22:28:22 +00:00
Owen Anderson
4674dd6cf5
Give JumpThreading+LVI a long-form cl::opt so that it's easier to toggle the default.
...
llvm-svn: 110384
2010-08-05 22:11:31 +00:00
Owen Anderson
c3a1413ea1
Split the tag and value members of LVILatticeVal in preparation for expanding the lattice to something that won't fit in two bits.
...
llvm-svn: 110383
2010-08-05 22:10:46 +00:00
Dan Gohman
26ef7c7ab7
Fix memdep's code for reasoning about dependences between two calls. A Ref
...
response from getModRefInfo is not useful here. Instead, check for identical
calls only in the NoModRef case.
Reapply r110270, and strengthen it to compensate for the memdep changes.
When both calls are readonly, there is no dependence between them.
llvm-svn: 110382
2010-08-05 22:09:15 +00:00
Gabor Greif
638c823211
remove the private hack from CallInst, it was not supposed to hit the branch anyway
...
as a positive consequence the CallSite::getCallee() methods now can be rewritten to be
a bit more efficient
llvm-svn: 110380
2010-08-05 21:25:49 +00:00
Owen Anderson
d3c94af142
Give ConstantRange an operator=
...
llvm-svn: 110376
2010-08-05 20:51:10 +00:00
Eric Christopher
fa5d2415b6
Document results of PR7762.
...
llvm-svn: 110373
2010-08-05 20:38:39 +00:00
Devang Patel
cc3f3b341d
Move x86 specific tests into test/CodeGen/X86.
...
llvm-svn: 110372
2010-08-05 20:25:37 +00:00
Eric Christopher
4d9c3400f3
Handle the memory barrier pseudo that goes to nothing for the JIT.
...
llvm-svn: 110371
2010-08-05 20:04:36 +00:00
Eric Christopher
7fd06eb8ce
Set hasSideEffects on the 64-bit no-sse memory barrier.
...
llvm-svn: 110369
2010-08-05 19:54:59 +00:00
Jim Grosbach
f50693d1ab
For local variables in functions with a frame pointer, use FP as a base
...
register for local access when it's closer to the stack slot being refererenced
than the stack pointer. Make sure to take into account any argument frame
SP adjustments that are in affect at the time.
rdar://8256090
llvm-svn: 110366
2010-08-05 19:27:37 +00:00
Bob Wilson
b1021395b8
Fix indentation.
...
llvm-svn: 110363
2010-08-05 19:00:21 +00:00
Jakob Stoklund Olesen
4583355a78
Remove double-def checking from MachineVerifier, so a register does not have to
...
be killed before being redefined.
These checks are usually disabled, and usually fail when enabled. We de facto
allow live registers to be redefined without a kill, the corresponding
assertions in RegScavenger were removed long ago.
llvm-svn: 110362
2010-08-05 18:59:59 +00:00
Bob Wilson
72de307116
Add an ARM RSCrr instruction for disassembly only.
...
Partial fix for PR7792.
llvm-svn: 110361
2010-08-05 18:59:36 +00:00
Eric Christopher
32f5d6b9be
Be a little bit more specific about target for the memory barrier
...
instructions.
llvm-svn: 110360
2010-08-05 18:36:20 +00:00
Eric Christopher
4abffad17c
Handle the pseudo in MCInstLower.
...
llvm-svn: 110359
2010-08-05 18:34:30 +00:00
Bob Wilson
adb93e56a3
Add an ARM RSBrr instruction for disassembly only.
...
Partial fix for PR7792.
llvm-svn: 110358
2010-08-05 18:23:43 +00:00
Jakob Stoklund Olesen
d9572619e2
Avoid using a live std::multimap iterator while editing the map. It looks like
...
we sometimes compare singular iterators, reported by ENABLE_EXPENSIVE_CHECKS.
This fixes PR7825.
llvm-svn: 110355
2010-08-05 18:12:19 +00:00
Dan Gohman
c53ee449a5
Move x86-specific tests out of test/Transforms/LoopStrengthReduce and
...
into test/CodeGen/X86, so that they aren't run when the x86 target is
not enabled.
Fix uglygep.ll to not be x86-specific.
llvm-svn: 110343
2010-08-05 17:04:15 +00:00
Bob Wilson
824edeb842
Revert bugpoint change due to buildbot breakage.
...
--- Reverse-merging r110333 into '.':
U tools/bugpoint/BugDriver.h
U tools/bugpoint/OptimizerDriver.cpp
U tools/bugpoint/bugpoint.cpp
U tools/bugpoint/BugDriver.cpp
llvm-svn: 110341
2010-08-05 16:26:32 +00:00
Daniel Dunbar
e62e664656
tests: CodeGen/X86/GC tests require X86.
...
llvm-svn: 110338
2010-08-05 15:45:33 +00:00
Daniel Dunbar
57e3f71538
tests: Mark MC/AsmParser tests as requiring x86 for now -- almost all of them
...
rely on using a specific x86 triple to test what they want to test.
llvm-svn: 110337
2010-08-05 15:44:15 +00:00
Rafael Espindola
86d7095eac
Run opt instead of bugpoint itself.
...
Fixes PR753.
llvm-svn: 110333
2010-08-05 15:25:38 +00:00
Rafael Espindola
5bca58a290
check-lit was failing again on F13 64 bits :-(
...
llvm-svn: 110311
2010-08-05 03:35:01 +00:00
Chandler Carruth
e6ca1cfef7
Silence a GCC warning about && and || without explicit parentheses. This
...
preserves the existing behavior, as it seems a concious choice to allow RS to
be null and BigStack marked true.
llvm-svn: 110307
2010-08-05 03:04:21 +00:00
Rafael Espindola
d1c7ef4ab5
Add const to compileProgram and to the various test functions in CrashDebugger.
...
llvm-svn: 110306
2010-08-05 03:00:22 +00:00
Oscar Fuentes
fc21c3aa32
When building from git, add ref-id to PACKAGE_VERSION
...
llvm-svn: 110301
2010-08-05 02:22:51 +00:00
Rafael Espindola
37302eadca
Add a Module argument to the remaining runPasses methods and mark getContext
...
const.
llvm-svn: 110300
2010-08-05 02:16:32 +00:00
Oscar Fuentes
396cc7d477
New system for choosing CRT type on MSVC.
...
Is setted on a per build type basis. This is useful for generators
that comprise several build types, i.e. VC++ solutions.
llvm-svn: 110296
2010-08-05 01:25:48 +00:00
Dan Gohman
554b012f67
Revert r110270 for now. It appears to uncover a memdep bug.
...
llvm-svn: 110293
2010-08-05 00:43:10 +00:00
Bob Wilson
97886d59d1
ARM "rrx" shift operands do not have an immediate. PR7790.
...
llvm-svn: 110292
2010-08-05 00:34:42 +00:00
Rafael Espindola
315190b28c
Make EmitProgressBitcode const and add a Module argument to runPasses. Use
...
that argument to simplify runPassesOn.
llvm-svn: 110291
2010-08-05 00:29:04 +00:00
Dan Gohman
109561845b
The trouble with testing for "ModRef" and "NoModRef" is that
...
one is a suffix of the other, and FileCheck accepts superstrings.
Adjust the output to avoid this problem.
llvm-svn: 110280
2010-08-04 23:37:55 +00:00
Bill Wendling
ca1cb13646
The lower invoke pass needs to have unreachable code elimination run after it
...
because it could create such things. This fixes a MingW buildbot test failure.
llvm-svn: 110279
2010-08-04 23:36:02 +00:00
Dan Gohman
a1c0f8b5c8
Delete obsolete comments.
...
llvm-svn: 110277
2010-08-04 23:08:15 +00:00
Eric Christopher
2db8464282
Make x86-64 membarriers work without sse and clean up some of the
...
uses.
llvm-svn: 110274
2010-08-04 23:03:04 +00:00
Dan Gohman
bd33dab633
The two-callsite form of AliasAnalysis::getModRefInfo is documented
...
to return Ref if the left callsite only reads memory read or written
by the right callsite; fix BasicAliasAnalysis to implement this.
Add AliasAnalysisEvaluator support for testing the two-callsite
form of getModRefInfo.
llvm-svn: 110270
2010-08-04 22:56:29 +00:00
Jim Grosbach
8aaadea8ef
and back in. false alarm on the tests from another unrelated local change.
...
llvm-svn: 110269
2010-08-04 22:46:09 +00:00
Eli Friedman
39d0f57cab
PR7814: Truncates cannot be ignored for signed comparisons.
...
llvm-svn: 110268
2010-08-04 22:40:58 +00:00
Devang Patel
a52ddc496a
Implement target specific getDebugValueLocation().
...
llvm-svn: 110267
2010-08-04 22:39:39 +00:00
Jakob Stoklund Olesen
7fd4905f08
Coalesce stack slot accesses that arise when spilling both sides of a COPY.
...
This helps avoid silly code:
%R0<def = LOAD <fi#5>
STORE <fi#5>, %R0<kill>
llvm-svn: 110266
2010-08-04 22:35:11 +00:00
Jim Grosbach
8732d966e1
oops. revert for a moment to clean up tests first.
...
llvm-svn: 110259
2010-08-04 22:12:43 +00:00
Jim Grosbach
22be317fe4
Reserve a stack slot if the function adjusts the stack but doesn't
...
simplify the call frame pseudo instructions. In that situation, the
calculations for estimating the stack size will be way off, leading to
not having an emergency spill slot when we need one. It should be possible
to be more precise about tracking the adjustment values, but not really
necessary for correctness. Upcoming cleanups for PEI in general will
render that moot.
llvm-svn: 110258
2010-08-04 22:10:15 +00:00
Jakob Stoklund Olesen
dc96e28d70
Checkpoint SplitKit progress.
...
We are now at a point where we can split around simple single-entry, single-exit
loops, although still with some bugs.
llvm-svn: 110257
2010-08-04 22:08:39 +00:00