oota-llvm.git
14 years agollvmc: Cut global namespace pollution.
Mikhail Glushenkov [Fri, 20 Aug 2010 11:24:44 +0000 (11:24 +0000)]
llvmc: Cut global namespace pollution.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111619 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoDisambiguate calls to WriteGraph() to disable ADL.
Mikhail Glushenkov [Fri, 20 Aug 2010 11:24:35 +0000 (11:24 +0000)]
Disambiguate calls to WriteGraph() to disable ADL.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111618 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoTrailing whitespace.
Mikhail Glushenkov [Fri, 20 Aug 2010 11:24:31 +0000 (11:24 +0000)]
Trailing whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111617 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoReplace the arm.neon.vmovls and vmovlu intrinsics with vector sign-extend and
Bob Wilson [Fri, 20 Aug 2010 04:54:02 +0000 (04:54 +0000)]
Replace the arm.neon.vmovls and vmovlu intrinsics with vector sign-extend and
zero-extend operations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111614 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoUse tool_output_file in llvm-extract and llvm-link too.
Dan Gohman [Fri, 20 Aug 2010 01:12:13 +0000 (01:12 +0000)]
Use tool_output_file in llvm-extract and llvm-link too.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111604 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoUse the new tool_output_file in several tools. This fixes a variety
Dan Gohman [Fri, 20 Aug 2010 01:07:01 +0000 (01:07 +0000)]
Use the new tool_output_file in several tools. This fixes a variety
of problems with output files being left behind or output streams
being left unclosed. Fix llvm-mc to respect the -o option in all
modes, rather than hardcoding outs() in some cases.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111603 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoMake the SCC printing passes use errs() instead of outs(), as the
Dan Gohman [Fri, 20 Aug 2010 01:03:44 +0000 (01:03 +0000)]
Make the SCC printing passes use errs() instead of outs(), as the
other printing passes do, and update the documentation accordingly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111601 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoPrint chatty verbose messages to errs() instead of outs().
Dan Gohman [Fri, 20 Aug 2010 01:02:14 +0000 (01:02 +0000)]
Print chatty verbose messages to errs() instead of outs().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111599 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoMinor cleanups to follow the common convention for pass
Dan Gohman [Fri, 20 Aug 2010 01:00:03 +0000 (01:00 +0000)]
Minor cleanups to follow the common convention for pass
registration variables.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111598 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoMinor cleanups to follow the common convention for pass
Dan Gohman [Fri, 20 Aug 2010 00:56:16 +0000 (00:56 +0000)]
Minor cleanups to follow the common convention for pass
registration variables.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111596 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoIntroduce a new tool_output_file class, which extends raw_ostream with
Dan Gohman [Fri, 20 Aug 2010 00:48:10 +0000 (00:48 +0000)]
Introduce a new tool_output_file class, which extends raw_ostream with
functionality that most command-line tools need: ensuring that the
output file gets deleted if the tool is interrupted or encounters an
error.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111595 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFix loop conditionals (MO.isDef() asserts that it's a reg) and
Eric Christopher [Fri, 20 Aug 2010 00:36:24 +0000 (00:36 +0000)]
Fix loop conditionals (MO.isDef() asserts that it's a reg) and
move some constraints around.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111594 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd a couple of random comments.
Eric Christopher [Fri, 20 Aug 2010 00:20:31 +0000 (00:20 +0000)]
Add a couple of random comments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111592 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoIf the target says that an extending load is not legal, regardless of whether
Bob Wilson [Thu, 19 Aug 2010 23:52:39 +0000 (23:52 +0000)]
If the target says that an extending load is not legal, regardless of whether
it involves specific floating-point types, legalize should expand an
extending load to a non-extending load followed by a separate extend operation.
For example, we currently expand SEXTLOAD to EXTLOAD+SIGN_EXTEND_INREG (and
assert that EXTLOAD should always be supported).  Now we can expand that to
LOAD+SIGN_EXTEND.  This is needed to allow vector SIGN_EXTEND and ZERO_EXTEND
to be used for NEON.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111586 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoBetter handling of offsets on frame index references. rdar://8277890
Jim Grosbach [Thu, 19 Aug 2010 23:52:25 +0000 (23:52 +0000)]
Better handling of offsets on frame index references. rdar://8277890

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111585 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoCrashRecovery/Darwin: On Darwin, raise sends a signal to the main thread instead
Daniel Dunbar [Thu, 19 Aug 2010 23:45:39 +0000 (23:45 +0000)]
CrashRecovery/Darwin: On Darwin, raise sends a signal to the main thread instead
of the current thread. This has the unfortunate effect that assert() and abort()
will end up bypassing our crash recovery attempts. We work around this for
anything in the same linkage unit by just defining our own versions of the
assert handler and abort.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111583 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoPrevious revert failed to remove this file.
Owen Anderson [Thu, 19 Aug 2010 23:45:15 +0000 (23:45 +0000)]
Previous revert failed to remove this file.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111582 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoUpdate comment to remove special case for vector extending loads. An
Bob Wilson [Thu, 19 Aug 2010 23:39:00 +0000 (23:39 +0000)]
Update comment to remove special case for vector extending loads.  An
extending vector load should extend each element in the same way as the
corresponding scalar extending load.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111577 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoUpdate debug logs.
Evan Cheng [Thu, 19 Aug 2010 23:33:02 +0000 (23:33 +0000)]
Update debug logs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111575 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoProperly update MachineDominators when splitting critical edge.
Evan Cheng [Thu, 19 Aug 2010 23:32:47 +0000 (23:32 +0000)]
Properly update MachineDominators when splitting critical edge.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111574 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoRevert r111568 to unbreak clang self-host.
Owen Anderson [Thu, 19 Aug 2010 23:25:16 +0000 (23:25 +0000)]
Revert r111568 to unbreak clang self-host.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111571 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoWhen a set of bitmask operations, typically from a bitfield initialization, only...
Owen Anderson [Thu, 19 Aug 2010 22:15:40 +0000 (22:15 +0000)]
When a set of bitmask operations, typically from a bitfield initialization, only modifies the low bytes of a value,
we can narrow the store to only over-write the affected bytes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111568 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agollvmc: Update examples.
Mikhail Glushenkov [Thu, 19 Aug 2010 20:04:19 +0000 (20:04 +0000)]
llvmc: Update examples.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111553 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoTrailing whitespace.
Mikhail Glushenkov [Thu, 19 Aug 2010 20:03:53 +0000 (20:03 +0000)]
Trailing whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111552 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoDisable LVI while I evaluate a failure.
Owen Anderson [Thu, 19 Aug 2010 19:47:08 +0000 (19:47 +0000)]
Disable LVI while I evaluate a failure.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111551 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoTentatively enabled LVI by default. I'll be monitoring for any failures.
Owen Anderson [Thu, 19 Aug 2010 19:04:40 +0000 (19:04 +0000)]
Tentatively enabled LVI by default.  I'll be monitoring for any failures.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111543 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoCorrect header.
Bill Wendling [Thu, 19 Aug 2010 18:52:17 +0000 (18:52 +0000)]
Correct header.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111540 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoSilence 'unused' warning.
Bill Wendling [Thu, 19 Aug 2010 18:52:02 +0000 (18:52 +0000)]
Silence 'unused' warning.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111539 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoIt's possible to sink a def if its local uses are PHI's.
Evan Cheng [Thu, 19 Aug 2010 18:33:29 +0000 (18:33 +0000)]
It's possible to sink a def if its local uses are PHI's.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111537 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFix the msvc 2010 build.
Michael J. Spencer [Thu, 19 Aug 2010 18:16:39 +0000 (18:16 +0000)]
Fix the msvc 2010 build.

The Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.30319.01
implements parts of C++0x based on the draft standard. An old version of
the draft had a bug that makes std::pair<T1*, T2*>(something, 0) fail to
compile. This is because the template<class U, class V> pair(U&& x, V&& y)
constructor is selected, even though it later fails to implicitly convert
U and V to frist_type and second_type.

This has been fixed in n3090, but it seems that Microsoft is not going to
update msvc.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111535 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoDo not assert when reading an exponent out of range.
Dale Johannesen [Thu, 19 Aug 2010 17:58:35 +0000 (17:58 +0000)]
Do not assert when reading an exponent out of range.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111534 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd Thumb1 support for virtual frame indices.
Jim Grosbach [Thu, 19 Aug 2010 17:52:13 +0000 (17:52 +0000)]
Add Thumb1 support for virtual frame indices.

rdar://8277890

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111533 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoRemove disabled assertion.
Evan Cheng [Thu, 19 Aug 2010 17:33:48 +0000 (17:33 +0000)]
Remove disabled assertion.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111531 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoTeach machine-sink to break critical edges when appropriate. Work in progress.
Evan Cheng [Thu, 19 Aug 2010 17:33:11 +0000 (17:33 +0000)]
Teach machine-sink to break critical edges when appropriate. Work in progress.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111530 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agobuildbot/valgrind: Update RegisterPass false positive suppression for API
Daniel Dunbar [Thu, 19 Aug 2010 17:21:21 +0000 (17:21 +0000)]
buildbot/valgrind: Update RegisterPass false positive suppression for API
changes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111529 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agobuildbot/valgrind: Suppress warnings about leaks in /bin/grep.
Daniel Dunbar [Thu, 19 Aug 2010 17:21:17 +0000 (17:21 +0000)]
buildbot/valgrind: Suppress warnings about leaks in /bin/grep.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111528 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoRe-re-revert this patch. It seems to be causing performance
Eric Christopher [Thu, 19 Aug 2010 17:21:10 +0000 (17:21 +0000)]
Re-re-revert this patch.  It seems to be causing performance
and correctness regressions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111527 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agotests: Haste makes waste.
Daniel Dunbar [Thu, 19 Aug 2010 16:47:54 +0000 (16:47 +0000)]
tests: Haste makes waste.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111525 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agotests: Ignore whitespace in llvm_supports_binding() and llvm_gcc_supports().
Daniel Dunbar [Thu, 19 Aug 2010 16:46:52 +0000 (16:46 +0000)]
tests: Ignore whitespace in llvm_supports_binding() and llvm_gcc_supports().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111524 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoSilence warning.
Eric Christopher [Thu, 19 Aug 2010 15:35:27 +0000 (15:35 +0000)]
Silence warning.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111518 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoMCELF: Count the section orders properly. Patch by Roman Divacky.
Benjamin Kramer [Thu, 19 Aug 2010 13:44:49 +0000 (13:44 +0000)]
MCELF: Count the section orders properly. Patch by Roman Divacky.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111517 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFixed and reactivated a partial specialization test
Kenneth Uildriks [Thu, 19 Aug 2010 12:42:38 +0000 (12:42 +0000)]
Fixed and reactivated a partial specialization test

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111516 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoUse std::string instead of StringRef in ClangAttrEmitter.cpp; per report on
Eli Friedman [Thu, 19 Aug 2010 06:11:05 +0000 (06:11 +0000)]
Use std::string instead of StringRef in ClangAttrEmitter.cpp; per report on
cfe-dev, fixes an error compiling with MSVC.  Using a StringRef here doesn't
look safe in any case.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111513 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoUpdate local stack block allocation to let PEI do the allocs if no additional
Jim Grosbach [Thu, 19 Aug 2010 02:47:08 +0000 (02:47 +0000)]
Update local stack block allocation to let PEI do the allocs if no additional
base registers were required. This will allow for slightly better packing
of the locals when alignment padding is necessary after callee saved registers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111508 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoRevert r111199; it breaks -debug-pass=Structure output.
Dan Gohman [Thu, 19 Aug 2010 01:29:07 +0000 (01:29 +0000)]
Revert r111199; it breaks -debug-pass=Structure output.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111500 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoReapply the virtual register patch from 109102. The places where we were
Eric Christopher [Thu, 19 Aug 2010 01:25:50 +0000 (01:25 +0000)]
Reapply the virtual register patch from 109102. The places where we were
depending on the number of virtual registers appear to have all been handled
now.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111499 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agofix PR7465, mishandling of lcall and ljmp: intersegment long
Chris Lattner [Thu, 19 Aug 2010 01:18:43 +0000 (01:18 +0000)]
fix PR7465, mishandling of lcall and ljmp: intersegment long
call and jumps.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111496 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoProcess the step before the start, because it's usually the simpler
Dan Gohman [Thu, 19 Aug 2010 01:02:31 +0000 (01:02 +0000)]
Process the step before the start, because it's usually the simpler
of the two.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111495 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agominor progress towards fixing PR7465
Chris Lattner [Thu, 19 Aug 2010 01:00:34 +0000 (01:00 +0000)]
minor progress towards fixing PR7465

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111494 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd an AddOptionalDefs method and use it.
Eric Christopher [Thu, 19 Aug 2010 00:37:05 +0000 (00:37 +0000)]
Add an AddOptionalDefs method and use it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111489 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agolit/GoogleTest: Add .exe to the suffix when looking for tests.
Daniel Dunbar [Thu, 19 Aug 2010 00:22:45 +0000 (00:22 +0000)]
lit/GoogleTest: Add .exe to the suffix when looking for tests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111487 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd include missing for VC build.
Sean Hunt [Thu, 19 Aug 2010 00:19:03 +0000 (00:19 +0000)]
Add include missing for VC build.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111484 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoTestcase for llvm-gcc checkin 111482.
Dale Johannesen [Thu, 19 Aug 2010 00:09:07 +0000 (00:09 +0000)]
Testcase for llvm-gcc checkin 111482.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111483 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd the "isCompare" attribute to the defm instead of each individual instr.
Bill Wendling [Thu, 19 Aug 2010 00:05:48 +0000 (00:05 +0000)]
Add the "isCompare" attribute to the defm instead of each individual instr.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111481 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoRemove three spurious semicolons
Sean Hunt [Thu, 19 Aug 2010 00:03:05 +0000 (00:03 +0000)]
Remove three spurious semicolons

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111480 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoDon't call Predicate_* in Mips.
Jakob Stoklund Olesen [Wed, 18 Aug 2010 23:56:46 +0000 (23:56 +0000)]
Don't call Predicate_* in Mips.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111468 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoRemove extra header.
Eric Christopher [Wed, 18 Aug 2010 23:38:16 +0000 (23:38 +0000)]
Remove extra header.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111456 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFinish full attribute class emission for clang.
Sean Hunt [Wed, 18 Aug 2010 23:23:09 +0000 (23:23 +0000)]
Finish full attribute class emission for clang.

For more information, see the accompanying clang patch.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111454 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd a newline to debug output
Jim Grosbach [Wed, 18 Aug 2010 23:14:02 +0000 (23:14 +0000)]
Add a newline to debug output

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111453 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agorefix PR1143 by making basicaa analyze zexts of indices aggresively,
Chris Lattner [Wed, 18 Aug 2010 23:09:49 +0000 (23:09 +0000)]
refix PR1143 by making basicaa analyze zexts of indices aggresively,
which I broke with a recent patch.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111452 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoIf any def of a machine-sink candidate has local uses, it's obviously not safe to...
Evan Cheng [Wed, 18 Aug 2010 23:09:25 +0000 (23:09 +0000)]
If any def of a machine-sink candidate has local uses, it's obviously not safe to sink it to a successor block. This bug has been hidden because a later check for critical-edge disable these illegal optimizations. This patch should significantly reduce the amount of time spent on checking dominator information for obviously unsafe sinking.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111450 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoGetLinearExpression is only called when TD is non-null, pass as
Chris Lattner [Wed, 18 Aug 2010 22:52:09 +0000 (22:52 +0000)]
GetLinearExpression is only called when TD is non-null, pass as
a reference instead of pointer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111445 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agorework GEP decomposition to make a new VariableGEPIndex struct instead of
Chris Lattner [Wed, 18 Aug 2010 22:47:56 +0000 (22:47 +0000)]
rework GEP decomposition to make a new VariableGEPIndex struct instead of
using a pair.  This tidies up the code a bit.  While setting things up, add
a (currently unused) field to keep track of how the value is extended.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111444 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoEnable ARM base register reuse to local stack slot allocation. Whenever a new
Jim Grosbach [Wed, 18 Aug 2010 22:44:49 +0000 (22:44 +0000)]
Enable ARM base register reuse to local stack slot allocation. Whenever a new
frame index reference to an object in the local block is seen, check if
it's near enough to any previously allocaated base register to re-use.

rdar://8277890

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111443 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd a testcase to verify that commands don't crash when they hit
Dan Gohman [Wed, 18 Aug 2010 22:35:56 +0000 (22:35 +0000)]
Add a testcase to verify that commands don't crash when they hit
errors on stderr.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111440 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoMake raw_fd_ostream consider itself the owner of STDOUT_FILENO when
Dan Gohman [Wed, 18 Aug 2010 22:26:19 +0000 (22:26 +0000)]
Make raw_fd_ostream consider itself the owner of STDOUT_FILENO when
constructed with an output filename of "-". In particular, allow the
file descriptor to be closed, and close the file descriptor in the
destructor if it hasn't been explicitly closed already, to ensure
that any write errors are detected.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111436 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoWhen sending stats output to stdout for grepping, don't emit normal
Dan Gohman [Wed, 18 Aug 2010 22:22:44 +0000 (22:22 +0000)]
When sending stats output to stdout for grepping, don't emit normal
output to standard output also.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111435 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agomove gep decomposition out of ValueTracking into BasicAA. The form of
Chris Lattner [Wed, 18 Aug 2010 22:07:29 +0000 (22:07 +0000)]
move gep decomposition out of ValueTracking into BasicAA.  The form of
decomposition that it is doing is very basicaa specific and is only used
by basicaa.

Now with less tree breakingness.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111433 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoTidy.
Dan Gohman [Wed, 18 Aug 2010 22:04:43 +0000 (22:04 +0000)]
Tidy.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111432 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoMinor simplification. Gets rid of a needless temporary.
Bill Wendling [Wed, 18 Aug 2010 21:32:07 +0000 (21:32 +0000)]
Minor simplification. Gets rid of a needless temporary.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111430 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoUse ConstantRange to propagate information through value definitions.
Owen Anderson [Wed, 18 Aug 2010 21:11:37 +0000 (21:11 +0000)]
Use ConstantRange to propagate information through value definitions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111425 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoWhen sending stats output to stdout for grepping, don't emit normal
Dan Gohman [Wed, 18 Aug 2010 20:32:46 +0000 (20:32 +0000)]
When sending stats output to stdout for grepping, don't emit normal
output to standard output also.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111401 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoThinking about it, we don't need MachineDominatorTree after all. The DomValue
Jakob Stoklund Olesen [Wed, 18 Aug 2010 20:29:53 +0000 (20:29 +0000)]
Thinking about it, we don't need MachineDominatorTree after all. The DomValue
map discovers the iterated dominance frontier for free.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111400 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoIntroduce a ScopedFatalErrorHandler class to make it easy to register
Dan Gohman [Wed, 18 Aug 2010 20:16:39 +0000 (20:16 +0000)]
Introduce a ScopedFatalErrorHandler class to make it easy to register
fatal error handlers which automatically get unregistered at the end
of a scope.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111398 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoRevert r111394. It was too aggressive.
Jakob Stoklund Olesen [Wed, 18 Aug 2010 20:06:05 +0000 (20:06 +0000)]
Revert r111394. It was too aggressive.

We must complete the DFS, otherwise we might miss needed phi-defs, and
prematurely color live ranges with a non-dominating value.

This is not a big deal since we get to color more of the CFG and the next
mapValue call will be faster.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111397 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAggressively prune the DFS when inserting phi-defs.
Jakob Stoklund Olesen [Wed, 18 Aug 2010 19:00:11 +0000 (19:00 +0000)]
Aggressively prune the DFS when inserting phi-defs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111394 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd the LiveIntervalMap class. Don't hook it up yet.
Jakob Stoklund Olesen [Wed, 18 Aug 2010 19:00:08 +0000 (19:00 +0000)]
Add the LiveIntervalMap class. Don't hook it up yet.

LiveIntervalMap maps values from a parent LiveInterval to a child interval that
is a strict subset. It will create phi-def values as needed to preserve the
VNInfo SSA form in the child interval.

This leads to an algorithm very similar to the one in SSAUpdaterImpl.h, but with
enough differences that the code can't be reused:

- We don't need to manipulate PHI instructions.
- LiveIntervals have kills.
- We have MachineDominatorTree.
- We can use df_iterator.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111393 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd df_iterator::getPathLength and getPath as a way of getting a path from the
Jakob Stoklund Olesen [Wed, 18 Aug 2010 19:00:05 +0000 (19:00 +0000)]
Add df_iterator::getPathLength and getPath as a way of getting a path from the
entry node to the current node.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111392 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoRevert r111375, "move gep decomposition out of ValueTracking into BasicAA. The
Daniel Dunbar [Wed, 18 Aug 2010 18:43:08 +0000 (18:43 +0000)]
Revert r111375, "move gep decomposition out of ValueTracking into BasicAA.  The
form of", it doesn't pass tests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111385 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoImprove whitespace.
Bill Wendling [Wed, 18 Aug 2010 18:41:13 +0000 (18:41 +0000)]
Improve whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111384 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoMarked with ATTRIBUTE_USED so that clang doesn't complain.
Bill Wendling [Wed, 18 Aug 2010 18:40:57 +0000 (18:40 +0000)]
Marked with ATTRIBUTE_USED so that clang doesn't complain.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111383 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoInform LazyValueInfo whenever a block is deleted, to avoid dangling pointer issues.
Owen Anderson [Wed, 18 Aug 2010 18:39:01 +0000 (18:39 +0000)]
Inform LazyValueInfo whenever a block is deleted, to avoid dangling pointer issues.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111382 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoMC/ELF: Allow null values in virtual sections, ELF doesn't use special
Daniel Dunbar [Wed, 18 Aug 2010 18:22:37 +0000 (18:22 +0000)]
MC/ELF: Allow null values in virtual sections, ELF doesn't use special
directives for putting contents in .bss, for example.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111376 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agomove gep decomposition out of ValueTracking into BasicAA. The form of
Chris Lattner [Wed, 18 Aug 2010 18:22:17 +0000 (18:22 +0000)]
move gep decomposition out of ValueTracking into BasicAA.  The form of
decomposition that it is doing is very basicaa specific and is only used
by basicaa.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111375 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAdd hook for re-using virtual base registers for local stack slot access.
Jim Grosbach [Wed, 18 Aug 2010 17:57:37 +0000 (17:57 +0000)]
Add hook for re-using virtual base registers for local stack slot access.
Nothing fancy, just ask the target if any currently available base reg
is in range for the instruction under consideration and use the first one
that is. Placeholder ARM implementation simply returns false for now.

ongoing saga of rdar://8277890

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111374 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoEliminate some redundancy by relying on raw_fd_ostream to handle "-"
Dan Gohman [Wed, 18 Aug 2010 17:55:15 +0000 (17:55 +0000)]
Eliminate some redundancy by relying on raw_fd_ostream to handle "-"
properly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111373 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoAllow the -analyze option to follow the -o option, which defaults to
Dan Gohman [Wed, 18 Aug 2010 17:42:59 +0000 (17:42 +0000)]
Allow the -analyze option to follow the -o option, which defaults to
standard output, instead of just hardcoding outs().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111372 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoDon't translate "-" to outs() manually; raw_ostream does that automatically.
Dan Gohman [Wed, 18 Aug 2010 17:40:10 +0000 (17:40 +0000)]
Don't translate "-" to outs() manually; raw_ostream does that automatically.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111371 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoDon't translate "-" to outs() manually; raw_ostream does that
Dan Gohman [Wed, 18 Aug 2010 17:26:50 +0000 (17:26 +0000)]
Don't translate "-" to outs() manually; raw_ostream does that
automatically.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111370 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoDon't register stdout to be deleted on a signal.
Dan Gohman [Wed, 18 Aug 2010 17:21:42 +0000 (17:21 +0000)]
Don't register stdout to be deleted on a signal.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111368 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoRemove an unused command-line option.
Dan Gohman [Wed, 18 Aug 2010 17:20:51 +0000 (17:20 +0000)]
Remove an unused command-line option.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111367 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoPreserve subregs on PHI source operands. Patch by Krister Wombell!
Jakob Stoklund Olesen [Wed, 18 Aug 2010 16:09:47 +0000 (16:09 +0000)]
Preserve subregs on PHI source operands. Patch by Krister Wombell!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111366 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFix a bug with insertelement on SPU.
Kalle Raiskila [Wed, 18 Aug 2010 10:20:29 +0000 (10:20 +0000)]
Fix a bug with insertelement on SPU.
The previous algorithm in LowerVECTOR_SHUFFLE
didn't check all requirements for "monotonic" shuffles.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111361 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoRemove all traces of v2[i,f]32 on SPU.
Kalle Raiskila [Wed, 18 Aug 2010 10:04:39 +0000 (10:04 +0000)]
Remove all traces of v2[i,f]32 on SPU.

The "half vectors" are now widened to full size by the legalizer.
The only exception is in parameter passing, where half vectors are
expanded. This causes changes to some dejagnu tests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111360 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoChange SPU C calling convention to match that described in
Kalle Raiskila [Wed, 18 Aug 2010 09:50:30 +0000 (09:50 +0000)]
Change SPU C calling convention to match that described in
"SPU Application Binary Interface Specification, v1.9" by
IBM.
Specifically: use r3-r74 to pass parameters and the return value.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111358 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agofix a buggy test
Chris Lattner [Wed, 18 Aug 2010 04:55:12 +0000 (04:55 +0000)]
fix a buggy test

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111354 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agofix PR7589: In brief:
Chris Lattner [Wed, 18 Aug 2010 04:28:19 +0000 (04:28 +0000)]
fix PR7589: In brief:
  gep P, (zext x) != gep P, (sext x)

DecomposeGEPExpression was getting this wrong, confusing
basicaa.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111352 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agofilecheckize and detrivialize.
Chris Lattner [Wed, 18 Aug 2010 04:25:43 +0000 (04:25 +0000)]
filecheckize and detrivialize.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111350 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agoFix PR7755: knowing something about an inval for a pred
Chris Lattner [Wed, 18 Aug 2010 03:14:36 +0000 (03:14 +0000)]
Fix PR7755: knowing something about an inval for a pred
from the LHS should disable reconsidering that pred on the
RHS.  However, knowing something about the pred on the RHS
shouldn't disable subsequent additions on the RHS from
happening.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111349 91177308-0d34-0410-b5e6-96231b3b80d8

14 years agofit in 80 cols
Chris Lattner [Wed, 18 Aug 2010 03:13:35 +0000 (03:13 +0000)]
fit in 80 cols

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111348 91177308-0d34-0410-b5e6-96231b3b80d8