1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 03:23:01 +02:00
Commit Graph

63034 Commits

Author SHA1 Message Date
Gabor Greif
aaf68e2e5a use ImmutableCallSite for const-corrgoodness
llvm-svn: 109503
2010-07-27 14:15:29 +00:00
Gabor Greif
ee90e05139 simplify
llvm-svn: 109502
2010-07-27 13:31:22 +00:00
Mikhail Glushenkov
61338a536b Fix silent failure with no input files.
llvm-svn: 109500
2010-07-27 11:19:40 +00:00
Mikhail Glushenkov
33c561c22c Return -1 only on failure to execute a program.
Also fix some comments.

llvm-svn: 109499
2010-07-27 11:19:36 +00:00
Duncan Sands
a5314238d6 In commit 91421, isPod was changed from false to true for these value handles.
Change it back again: destructors and constructors need to be run.

llvm-svn: 109498
2010-07-27 09:09:05 +00:00
Tobias Grosser
cac9d6f302 Make coff-dump.py executable and add python as executable for this script.
This fixes the MC/COFF/basic-coff.ll test case.

llvm-svn: 109497
2010-07-27 09:01:26 +00:00
Tobias Grosser
ebc6c0cf50 RegionInfo: Add getMaxRegionExit()
getMaxRegionExit returns the exit of the maximal refined region starting
at a specific basic block.

llvm-svn: 109496
2010-07-27 08:39:43 +00:00
Duncan Sands
816457c7f3 After updating value handles for RAUW, check that no weak or tracking handles
are still on the list.  This might happen if a CallbackVH created some new value
handles for the old value when doing RAUW.  Barf if it occurs, since it is almost
certainly a mistake.

llvm-svn: 109495
2010-07-27 06:53:14 +00:00
Michael J. Spencer
33ac353ce4 Make MC use Windows COFF on Windows and add tests.
llvm-svn: 109494
2010-07-27 06:46:15 +00:00
Tobias Grosser
16789d79fe Add function to query RegionInfo about loops.
* contains(Loop), * getOutermostLoop()
* Improve getNameStr() to return a sensible name, if basic blocks are not named.

llvm-svn: 109490
2010-07-27 04:17:13 +00:00
Jakob Stoklund Olesen
b056152ccf The isLoadFromStackSlot and isStoreToStackSlot have no way of reporting
subregister operands like this:

%reg1040:sub_32bit<def> = MOV32rm <fi#-2>, 1, %reg0, 0, %reg0, %reg1040<imp-def>; mem:LD4[FixedStack-2](align=8)

Make them return false when subreg operands are present. VirtRegRewriter is
making bad assumptions otherwise.

This fixes PR7713.

llvm-svn: 109489
2010-07-27 04:17:01 +00:00
Jakob Stoklund Olesen
fa4bcde9d9 Add assertions that expose the PR7713 miscompilation: Accessing a stack slot
with a too-big register class.

llvm-svn: 109488
2010-07-27 04:16:58 +00:00
Bill Wendling
bb2398331b It's better to have the arrays, which would trigger the creation of stack
protectors, to be near the stack protectors on the stack. Accomplish this by
tagging the stack object with a predicate that indicates that it would trigger
this. In the prolog-epilog inserter, assign these objects to the stack after the
stack protector but before the other objects.

llvm-svn: 109481
2010-07-27 01:55:19 +00:00
Dan Gohman
66b6f7d702 Use AssertingVH for InsertedValues and InsertedPostIncValues, to verify
that the values they refer to aren't being deleted underneath them.

Make sure these containters get cleared by clear(), which IndVarSimplify
and LSR both use before deleting instructions.

llvm-svn: 109478
2010-07-27 01:19:06 +00:00
Owen Anderson
a3f9dea4c7 (Hopefully) One last test.
llvm-svn: 109473
2010-07-27 00:04:55 +00:00
Owen Anderson
f147c9caa8 Another test.
llvm-svn: 109472
2010-07-27 00:00:47 +00:00
Owen Anderson
11470414f0 Another test.
llvm-svn: 109471
2010-07-26 23:58:46 +00:00
Jakob Stoklund Olesen
2b379c4339 Add SplitEditor to SplitKit. This class will be used to edit live intervals and
rewrite instructions for live range splitting.

Still work in progress.

llvm-svn: 109469
2010-07-26 23:44:11 +00:00
Dan Gohman
64157c1919 Fix a use-after-free.
llvm-svn: 109468
2010-07-26 23:40:24 +00:00
Bill Wendling
efed27734e Using llvm.eh.catch.all.value instead of .llvm.eh.catch.all.value.
llvm-svn: 109462
2010-07-26 22:36:52 +00:00
Eli Friedman
94c9f00dd6 And a bit more non-ASCII stuff.
llvm-svn: 109458
2010-07-26 22:28:18 +00:00
Anton Korobeynikov
b71ee4ebbb Drop some non-ascii stuff
llvm-svn: 109456
2010-07-26 22:23:07 +00:00
Bob Wilson
73936af25b Don't call __register_frame from the JIT on systems that use setjmp/longjmp
exception handling.  Also fix an extra underscore typo in one instance of
"__ARM_EABI__".  Radar 8236264.

llvm-svn: 109451
2010-07-26 21:58:00 +00:00
Evan Cheng
4cee8136a7 On x86, f32 / f64 nodes share the same registers as 128-bit vector values.
llvm-svn: 109450
2010-07-26 21:50:05 +00:00
Evan Cheng
e5f7eaf10c The "excess register pressure" returned by HighRegPressure() is not accurate enough to factor into scheduling priority. Eliminate it and add early exits to speed up scheduling.
llvm-svn: 109449
2010-07-26 21:49:07 +00:00
Anton Korobeynikov
5e1e95aed9 Add a note
llvm-svn: 109448
2010-07-26 21:48:35 +00:00
Dan Gohman
4437c8fbf7 Add a comment.
llvm-svn: 109435
2010-07-26 21:05:37 +00:00
Bruno Cardoso Lopes
cb0f921ca4 Temporary hack to let codegen assert or generate poor code in case
we are using AVX and no AVX version of the desired intruction is present,
this is better for incremental dev (without fallbacks it's easier to spot
what's missing). Not sure this is the best hack thought (we can also disable
all HasSSE* predicates by dinamically marking them 'false' if AVX is present)

llvm-svn: 109434
2010-07-26 21:01:18 +00:00
Owen Anderson
a69cf5d41a Testing some more.
llvm-svn: 109433
2010-07-26 20:51:45 +00:00
Owen Anderson
4f59a06783 Test some more.
llvm-svn: 109431
2010-07-26 20:19:04 +00:00
Dan Gohman
dd12556007 Fix library build messages.
llvm-svn: 109430
2010-07-26 20:15:47 +00:00
Gabor Greif
7ae22e4471 re-commit r109220, the compile error has already been fixed
Simplifying use_iterators by dereferencing
is not a good idea. The codebase does not depend
in this any more, and it may introduce hidden
runtime cost. If you get compile errors, please
dereference your iterator before passing to cast<>
(and friends).

Also: please consider caching the result of
operator* and reusing that instead of dereferencing
many times.

llvm-svn: 109425
2010-07-26 18:48:07 +00:00
Owen Anderson
12ab6162bf Add an initial implementation of LazyValueInfo updating for JumpThreading. Disabled for now.
llvm-svn: 109424
2010-07-26 18:48:03 +00:00
Anton Korobeynikov
5e3d50ec58 Currently EH lowering code expects typeinfo to be global only.
This assumption is not satisfied due to global mergeing.
Workaround the issue by temporary disablinge mergeing of const globals.
Also, ignore LLVM "special" globals. This fixes PR7716

llvm-svn: 109423
2010-07-26 18:45:39 +00:00
Owen Anderson
647ac93b7d Fix a test with malformed IR. Not sure why this didn't fail before.
llvm-svn: 109422
2010-07-26 18:44:56 +00:00
Evan Cheng
1566171daa ARM fastisel isn't ready.
llvm-svn: 109421
2010-07-26 18:32:55 +00:00
Owen Anderson
ecba91f744 One more test commit...
llvm-svn: 109420
2010-07-26 18:31:17 +00:00
Dan Gohman
9e0ae022d2 Fix SCEVExpander::visitAddRecExpr so that it remembers the induction variable
it inserted rather than using LoopInfo::getCanonicalInductionVariable to
rediscover it, since that doesn't work on non-canonical loops. This fixes
infinite recurrsion on such loops; PR7562.

llvm-svn: 109419
2010-07-26 18:28:14 +00:00
Dan Gohman
52e662a7f7 Handle Values with no value in getCopyFromRegs.
llvm-svn: 109415
2010-07-26 18:15:41 +00:00
Owen Anderson
cead3304a6 Hopefully the last test commit.
llvm-svn: 109414
2010-07-26 18:13:21 +00:00
Dan Gohman
23a6a1bdc5 Remove LCSSA's bogus dependence on LoopSimplify and LoopSimplify's bogus
dependence on DominanceFrontier. Instead, add an explicit DominanceFrontier
pass in StandardPasses.h to ensure that it gets scheduled at the right
time.

Declare that loop unrolling preserves ScalarEvolution, and shuffle some
getAnalysisUsages.

This eliminates one LoopSimplify and one LCCSA run in the standard
compile opts sequence.

llvm-svn: 109413
2010-07-26 18:11:16 +00:00
Dan Gohman
7d588b7dec Preserve ScalarEvolution in the loop unroller.
llvm-svn: 109412
2010-07-26 18:02:06 +00:00
Owen Anderson
bbc2017998 Another test commit.
llvm-svn: 109411
2010-07-26 18:00:59 +00:00
Dan Gohman
48bddf693c Avoid depending on LCSSA implicitly pulling in LoopSimplify.
llvm-svn: 109410
2010-07-26 18:00:43 +00:00
Owen Anderson
b74844aa94 Test commit for new post-commit hooks.
llvm-svn: 109409
2010-07-26 17:56:42 +00:00
Dan Gohman
e191a19b69 Fix (at least) quadratic worst-case complexity in DominanceFrontier::splitBlock:
don't visit all blocks in the function, and don't iterate over the split blocks'
predecessor lists for each block visited.

Also, remove the special-case test for the entry block. Splitting the entry
block isn't common enough to make this worthwhile.

This fixes a major compile-time bottleneck which is exposed now that
LoopSimplify isn't being redundantly run both before and after
DominanceFrontier.

llvm-svn: 109408
2010-07-26 17:55:15 +00:00
Eric Christopher
174cc190ef 80-col.
llvm-svn: 109407
2010-07-26 17:53:07 +00:00
Dan Gohman
c90f474e23 Avoid copying and recopying a std::set.
llvm-svn: 109405
2010-07-26 17:45:33 +00:00
Dan Gohman
8babd895c7 Exit a search loop when the search goal is found.
llvm-svn: 109404
2010-07-26 17:41:45 +00:00
Dan Gohman
014eec6389 Fix formatting.
llvm-svn: 109403
2010-07-26 17:39:33 +00:00