oota-llvm.git
14 years agoHandle code gen for the unreachable instruction if it's the only instruction in
Bill Wendling [Thu, 15 Jul 2010 23:32:40 +0000 (23:32 +0000)]
Handle code gen for the unreachable instruction if it's the only instruction in
the function. We'll just turn it into a "trap" instruction instead.

The problem with not handling this is that it might generate a prologue without
the equivalent epilogue to go with it:

$ cat t.ll
define void @foo() {
entry:
  unreachable
}
$ llc -o - t.ll -relocation-model=pic -disable-fp-elim -unwind-tables
        .section        __TEXT,__text,regular,pure_instructions
        .globl  _foo
        .align  4, 0x90
_foo:                                   ## @foo
Leh_func_begin0:
## BB#0:                                ## %entry
        pushq   %rbp
Ltmp0:
        movq    %rsp, %rbp
Ltmp1:
Leh_func_end0:
...

The unwind tables then have bad data in them causing all sorts of problems.

Fixes <rdar://problem/8096481>.

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

14 years agoSplit -enable-finite-only-fp-math to two options:
Evan Cheng [Thu, 15 Jul 2010 22:07:12 +0000 (22:07 +0000)]
Split -enable-finite-only-fp-math to two options:
-enable-no-nans-fp-math and -enable-no-infs-fp-math. All of the current codegen fp math optimizations only care whether the fp arithmetics arguments and results can never be NaN.

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

14 years agobuild/Darwin: Add a missing directory dependency.
Daniel Dunbar [Thu, 15 Jul 2010 21:51:52 +0000 (21:51 +0000)]
build/Darwin: Add a missing directory dependency.

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

14 years agoremove some unneeded overloads that were causing
Chris Lattner [Thu, 15 Jul 2010 21:24:02 +0000 (21:24 +0000)]
remove some unneeded overloads that were causing
ambiguity problems on some systems.

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

14 years agofix the definitions of ConstTextCoalSection/ConstDataCoalSection
Chris Lattner [Thu, 15 Jul 2010 21:22:00 +0000 (21:22 +0000)]
fix the definitions of ConstTextCoalSection/ConstDataCoalSection
to keep "Text" in sync with the "pure instructions" section attribute.
Lack of this attribute was preventing the assembler from emitting
multibyte noops instructions for templates (and inlines, and other
coalesced stuff) and was causing the assembler to mismatch .o files.

This fixes rdar://8018335

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

14 years agofix indentation and 80 cols
Chris Lattner [Thu, 15 Jul 2010 21:19:31 +0000 (21:19 +0000)]
fix indentation and 80 cols

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

14 years agoRevert 108456. i.e. bring back r108444.
Devang Patel [Thu, 15 Jul 2010 20:57:09 +0000 (20:57 +0000)]
Revert 108456.  i.e. bring back r108444.

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

14 years agoRevert 108444. It breaks a build.
Devang Patel [Thu, 15 Jul 2010 20:25:51 +0000 (20:25 +0000)]
Revert 108444. It breaks a build.

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

14 years agoDon't merge uses when they are targetting fixup sites with
Dan Gohman [Thu, 15 Jul 2010 20:24:58 +0000 (20:24 +0000)]
Don't merge uses when they are targetting fixup sites with
different widths. In a use with a narrower fixup, formulae
may be wider than the fixup, in which case the high bits
aren't necessarily meaningful, so it isn't safe to reuse
them for uses with wider fixups.

This fixes PR7618, though the testcase is too large for a
reasonable regression test, since it heavily dependes on
hitting LSR's heuristics in a certain way.

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

14 years agofix the encoding of MMX_MOVFR642Qrr, it starts with 0xF2 not 0xF3,
Chris Lattner [Thu, 15 Jul 2010 20:13:34 +0000 (20:13 +0000)]
fix the encoding of MMX_MOVFR642Qrr, it starts with 0xF2 not 0xF3,
this fixes rdar://8192860.  Unfortunately it can only be triggered
with llc because llvm-mc matches another (correctly encoded) version
of this, so no testcase.

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

14 years agoUse dbgs() instead of errs() in a DEBUG.
Dan Gohman [Thu, 15 Jul 2010 20:12:42 +0000 (20:12 +0000)]
Use dbgs() instead of errs() in a DEBUG.

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

14 years agoUse std::vector instead of TargetRegisterInfo::FirstVirtualRegister.
Bill Wendling [Thu, 15 Jul 2010 20:04:36 +0000 (20:04 +0000)]
Use std::vector instead of TargetRegisterInfo::FirstVirtualRegister.

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

14 years agoTeach ScalarEvolution how to fold trunc(undef) and anyext(undef) to undef.
Dan Gohman [Thu, 15 Jul 2010 20:02:11 +0000 (20:02 +0000)]
Teach ScalarEvolution how to fold trunc(undef) and anyext(undef) to undef.
This helps LSR behave more consistently on bugpoint-reduced testcases.

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

14 years agoUse std::vector instead of TargetRegisterInfo::FirstVirtualRegister.
Bill Wendling [Thu, 15 Jul 2010 20:01:02 +0000 (20:01 +0000)]
Use std::vector instead of TargetRegisterInfo::FirstVirtualRegister.

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

14 years agoUse std::vector instead of TargetRegisterInfo::FirstVirtualRegister. This time
Bill Wendling [Thu, 15 Jul 2010 19:58:14 +0000 (19:58 +0000)]
Use std::vector instead of TargetRegisterInfo::FirstVirtualRegister. This time
make sure to allocate enough space in the std::vector.

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

14 years agoReserve a goodly amount of room for the vectors.
Bill Wendling [Thu, 15 Jul 2010 19:41:20 +0000 (19:41 +0000)]
Reserve a goodly amount of room for the vectors.

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

14 years agobuild/Darwin: Add support for embedding version information in tool executables.
Daniel Dunbar [Thu, 15 Jul 2010 19:33:38 +0000 (19:33 +0000)]
build/Darwin: Add support for embedding version information in tool executables.

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

14 years agoFix crash reported in PR7653.
Devang Patel [Thu, 15 Jul 2010 18:45:27 +0000 (18:45 +0000)]
Fix crash reported in PR7653.

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

14 years agoUse std::vector instead of TargetRegisterInfo::FirstVirtualRegister.
Bill Wendling [Thu, 15 Jul 2010 18:43:09 +0000 (18:43 +0000)]
Use std::vector instead of TargetRegisterInfo::FirstVirtualRegister.

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

14 years agoUse std::vector instead of TargetRegisterInfo::FirstVirtualRegister.
Bill Wendling [Thu, 15 Jul 2010 18:40:50 +0000 (18:40 +0000)]
Use std::vector instead of TargetRegisterInfo::FirstVirtualRegister.

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

14 years agoSpeculatively revert r108429 to fix the clang self-host.
Owen Anderson [Thu, 15 Jul 2010 18:18:57 +0000 (18:18 +0000)]
Speculatively revert r108429 to fix the clang self-host.

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

14 years agoPer Chris' suggestion, get rid of the select canonicalization and just add
Owen Anderson [Thu, 15 Jul 2010 17:24:23 +0000 (17:24 +0000)]
Per Chris' suggestion, get rid of the select canonicalization and just add
the corresponding or-icmp-and pattern.  This has the added benefit of doing
the matching earlier, and thus being less susceptible to being confused by
earlier transforms.

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

14 years agoRemove unneeded check, and correct style.
Owen Anderson [Thu, 15 Jul 2010 16:38:22 +0000 (16:38 +0000)]
Remove unneeded check, and correct style.

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

14 years agoWatch out for a constant offset cancelling out a base register, forming
Dan Gohman [Thu, 15 Jul 2010 15:14:45 +0000 (15:14 +0000)]
Watch out for a constant offset cancelling out a base register, forming
a zero. This situation arrises in Fortran code with induction variables
that start at 1 instead of 0. This fixes PR7651.

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

14 years agoReapply r108378, with bugfixes, testcase, and improved comment formatting.
Owen Anderson [Thu, 15 Jul 2010 15:00:23 +0000 (15:00 +0000)]
Reapply r108378, with bugfixes, testcase, and improved comment formatting.
This now passes LIT, nighty test, and llvm-gcc bootstrap on my machine.

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

14 years agocache another dereferenced iterator
Gabor Greif [Thu, 15 Jul 2010 10:19:23 +0000 (10:19 +0000)]
cache another dereferenced iterator

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

14 years ago80-col.
Eric Christopher [Thu, 15 Jul 2010 07:49:30 +0000 (07:49 +0000)]
80-col.

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

14 years agorevert bill's patches in an attempt to fix the buildbot.
Chris Lattner [Thu, 15 Jul 2010 06:51:46 +0000 (06:51 +0000)]
revert bill's patches in an attempt to fix the buildbot.

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

14 years agoThis is a full sentence.
Nick Lewycky [Thu, 15 Jul 2010 06:51:22 +0000 (06:51 +0000)]
This is a full sentence.

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

14 years agoDisable aliases on all platforms.
Nick Lewycky [Thu, 15 Jul 2010 06:48:56 +0000 (06:48 +0000)]
Disable aliases on all platforms.

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

14 years agoCorrectly set rpath on Mac OS X for executable tools. Note that I am not certain...
Ted Kremenek [Thu, 15 Jul 2010 06:36:57 +0000 (06:36 +0000)]
Correctly set rpath on Mac OS X for executable tools.  Note that I am not certain this is the best fix; the code immediately above looks confused, as it first checks to see if we are NOT on Darwin and then checks the Darwin version number.  This fix allows c-index-test (in Clang) to run outside of running the regression test suite.  I would appreciate if someone reviewed this.

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

14 years agoFix PR7647, handling the case when 'To' ends up being
Chris Lattner [Thu, 15 Jul 2010 06:36:08 +0000 (06:36 +0000)]
Fix PR7647, handling the case when 'To' ends up being
mutated by recursive simplification.  This also enhances
ReplaceAndSimplifyAllUses to actually do a real RAUW
at the end of it, which updates any value handles
pointing to "From" to start pointing to "To".  This
seems useful for debug info and random other VH users.

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

14 years agomake various clients of ReplaceAndSimplifyAllUses tolerate
Chris Lattner [Thu, 15 Jul 2010 06:06:04 +0000 (06:06 +0000)]
make various clients of ReplaceAndSimplifyAllUses tolerate
it *changing* the things it replaces, not just causing them
to drop to null.  There is no functionality change yet, but
this is required for a subsequent patch.

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

14 years agoFix headers.
Bill Wendling [Thu, 15 Jul 2010 06:05:18 +0000 (06:05 +0000)]
Fix headers.

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

14 years agoUse std::vector instead of a hard-coded array. The length of that array could
Bill Wendling [Thu, 15 Jul 2010 06:04:38 +0000 (06:04 +0000)]
Use std::vector instead of a hard-coded array. The length of that array could
get *very* large, but we only need it to be the size of the number of pregs.

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

14 years agoUse std::vector instead of a hard-coded array. The length of that array could
Bill Wendling [Thu, 15 Jul 2010 05:56:32 +0000 (05:56 +0000)]
Use std::vector instead of a hard-coded array. The length of that array could
get *very* large, but we only need it to be the size of thenumber of pregs.

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

14 years agosee comment.
Chris Lattner [Thu, 15 Jul 2010 05:17:36 +0000 (05:17 +0000)]
see comment.

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

14 years agoadd an accessor.
Chris Lattner [Thu, 15 Jul 2010 05:14:01 +0000 (05:14 +0000)]
add an accessor.

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

14 years agoRevert r108401; it breaks bootstrap :(
Eli Friedman [Thu, 15 Jul 2010 05:09:31 +0000 (05:09 +0000)]
Revert r108401; it breaks bootstrap :(

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

14 years agoAdd AssertingVH which makes PR7647 break consistently.
Eli Friedman [Thu, 15 Jul 2010 04:46:14 +0000 (04:46 +0000)]
Add AssertingVH which makes PR7647 break consistently.

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

14 years agoRandom note about bswap.
Eli Friedman [Thu, 15 Jul 2010 02:20:38 +0000 (02:20 +0000)]
Random note about bswap.

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

14 years agoa more graceful fix for test/Other/inline-asm-newline-terminator.ll,
Chris Lattner [Thu, 15 Jul 2010 00:37:34 +0000 (00:37 +0000)]
a more graceful fix for test/Other/inline-asm-newline-terminator.ll,
follow on to r103765

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

14 years agoSpeculatively revert r108378; may be causing bootstrap failures.
Eli Friedman [Thu, 15 Jul 2010 00:33:00 +0000 (00:33 +0000)]
Speculatively revert r108378; may be causing bootstrap failures.

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

14 years agoLast COPY conversion.
Jakob Stoklund Olesen [Wed, 14 Jul 2010 23:58:21 +0000 (23:58 +0000)]
Last COPY conversion.

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

14 years agoRemove restriction on NEON alignment values. Some of the NEON ld/st
Bob Wilson [Wed, 14 Jul 2010 23:54:43 +0000 (23:54 +0000)]
Remove restriction on NEON alignment values.  Some of the NEON ld/st
instructions use different values (e.g., 2-byte or 4-byte alignment).
Also fix ARMInstPrinter to print these alignments as bits instead of bytes.

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

14 years agoUse TargetOpcode::COPY instead of X86-native register copy instructions when
Jakob Stoklund Olesen [Wed, 14 Jul 2010 23:50:27 +0000 (23:50 +0000)]
Use TargetOpcode::COPY instead of X86-native register copy instructions when
lowering atomics. This will allow those copies to still be coalesced after
TII::isMoveInstr is removed.

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

14 years agoRemove the entire docs directory from Apple-style builds.
Bob Wilson [Wed, 14 Jul 2010 23:49:18 +0000 (23:49 +0000)]
Remove the entire docs directory from Apple-style builds.
This fixes a "usr_junk" verification failure when installing into /usr.

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

14 years agoTry to get embedded build of llvmCore to pass verification.
Bob Wilson [Wed, 14 Jul 2010 23:41:58 +0000 (23:41 +0000)]
Try to get embedded build of llvmCore to pass verification.
Simplify some things in the process.

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

14 years ago80-col.
Eric Christopher [Wed, 14 Jul 2010 23:41:32 +0000 (23:41 +0000)]
80-col.

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

14 years agoAdd instcombine transforms to optimize tests of multiple bits of the same value into...
Owen Anderson [Wed, 14 Jul 2010 23:33:51 +0000 (23:33 +0000)]
Add instcombine transforms to optimize tests of multiple bits of the same value into a single larger comparison.

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

14 years agoTemporarily disable this test.
Eric Christopher [Wed, 14 Jul 2010 23:12:58 +0000 (23:12 +0000)]
Temporarily disable this test.

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

14 years agoMake it a .ll test case.
Devang Patel [Wed, 14 Jul 2010 23:12:52 +0000 (23:12 +0000)]
Make it a .ll test case.

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

14 years agoMake the order in which variables are described in debug information
Dan Gohman [Wed, 14 Jul 2010 23:08:16 +0000 (23:08 +0000)]
Make the order in which variables are described in debug information
independent of the order that isel happens to visit the dbg_declare
intrinsics. This fixes a bug in which the formal arguments were
being printed in reverse order, now that fast isel is going bottom up.

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

14 years agofix indentation
Chris Lattner [Wed, 14 Jul 2010 23:04:59 +0000 (23:04 +0000)]
fix indentation

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

14 years agoRemove some broken code to check the DISABLE_EDIS flag (edis is now in the
Bob Wilson [Wed, 14 Jul 2010 22:41:51 +0000 (22:41 +0000)]
Remove some broken code to check the DISABLE_EDIS flag (edis is now in the
DIRS list, so it does no good to filter it from PARALLEL_DIRS), and replace
it with a check to disable building the shared library version of edis when
the flag is set.  Disabling it entirely does not work because MC uses it now.

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

14 years agoDon't pass StringRef by reference.
Benjamin Kramer [Wed, 14 Jul 2010 22:38:02 +0000 (22:38 +0000)]
Don't pass StringRef by reference.

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

14 years agoAdd a testcase for the vla and stack realignment warning.
Eric Christopher [Wed, 14 Jul 2010 22:26:35 +0000 (22:26 +0000)]
Add a testcase for the vla and stack realignment warning.

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

14 years agoProperly restore DebugLoc after leaving the local constant area.
Dan Gohman [Wed, 14 Jul 2010 22:01:31 +0000 (22:01 +0000)]
Properly restore DebugLoc after leaving the local constant area.

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

14 years agoTests for llvm-gcc commit 108360.
Dale Johannesen [Wed, 14 Jul 2010 21:22:35 +0000 (21:22 +0000)]
Tests for llvm-gcc commit 108360.

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

14 years agoJust use getParent() instead of getModuleFromVal when the value is a Function.
Dan Gohman [Wed, 14 Jul 2010 21:12:44 +0000 (21:12 +0000)]
Just use getParent() instead of getModuleFromVal when the value is a Function.

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

14 years agoRename WriteConstantInt to WriteConstantInternal, to avoid confusion.
Dan Gohman [Wed, 14 Jul 2010 20:57:55 +0000 (20:57 +0000)]
Rename WriteConstantInt to WriteConstantInternal, to avoid confusion.

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

14 years agoExtend SimplifyCFG's common-destination folding heuristic to allow a single
Owen Anderson [Wed, 14 Jul 2010 19:52:16 +0000 (19:52 +0000)]
Extend SimplifyCFG's common-destination folding heuristic to allow a single
"bonus" instruction to be speculatively executed.  Add a heuristic to
ensure we're not tripping up out-of-order execution by checking that this bonus
instruction only uses values that were already guaranteed to be available.

This allows us to eliminate the short circuit in (x&1)&&(x&2).

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

14 years agoFactor out metadata parsing into a separate function.
Dan Gohman [Wed, 14 Jul 2010 18:26:50 +0000 (18:26 +0000)]
Factor out metadata parsing into a separate function.

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

14 years agoMerge lib/Target/X86/X86COFF.h into include/llvm/Support/COFF.h,
Chris Lattner [Wed, 14 Jul 2010 18:14:33 +0000 (18:14 +0000)]
Merge lib/Target/X86/X86COFF.h into include/llvm/Support/COFF.h,
patch by Michael Spencer!

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

14 years agoImprove 64-subtraction of immediates when parts of the immediate can fit
Jim Grosbach [Wed, 14 Jul 2010 17:45:16 +0000 (17:45 +0000)]
Improve 64-subtraction of immediates when parts of the immediate can fit
in the literal field of an instruction. E.g.,
long long foo(long long a) {
  return a - 734439407618LL;
}

rdar://7038284

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

14 years agoDelete fast-isel's trivial load optimization; it breaks debugging because
Dan Gohman [Wed, 14 Jul 2010 17:25:37 +0000 (17:25 +0000)]
Delete fast-isel's trivial load optimization; it breaks debugging because
it can look past points where a debugger might modify user variables.

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

14 years agoFix test to appease the buildbots.
Bob Wilson [Wed, 14 Jul 2010 16:43:47 +0000 (16:43 +0000)]
Fix test to appease the buildbots.

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

14 years agoAdd missing address register update to t2LDM_RET instruction.
Bob Wilson [Wed, 14 Jul 2010 16:02:13 +0000 (16:02 +0000)]
Add missing address register update to t2LDM_RET instruction.
Patch by Brian Lucas. PR7636.

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

14 years agoRather than using an ifdef on the target to zero out fields,
Duncan Sands [Wed, 14 Jul 2010 14:32:33 +0000 (14:32 +0000)]
Rather than using an ifdef on the target to zero out fields,
just use memset to zero the entire struct.

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

14 years agoA couple potential optimizations inspired by comment 4 in PR6773.
Eli Friedman [Wed, 14 Jul 2010 06:58:26 +0000 (06:58 +0000)]
A couple potential optimizations inspired by comment 4 in PR6773.

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

14 years agoFix for PR7193 was overly conservative. The only case where sibcall callee
Evan Cheng [Wed, 14 Jul 2010 06:44:01 +0000 (06:44 +0000)]
Fix for PR7193 was overly conservative. The only case where sibcall callee
address cannot be allocated a register is in 32-bit mode where the first
three arguments are marked inreg. In that case EAX, EDX, and ECX will be
used for argument passing.

This fixes PR7610.

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

14 years agoAdd support for NEON VMVN immediate instructions.
Bob Wilson [Wed, 14 Jul 2010 06:31:50 +0000 (06:31 +0000)]
Add support for NEON VMVN immediate instructions.

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

14 years agoThe bits in the cmode field of 32-bit VMOV immediate instructions all depend
Bob Wilson [Wed, 14 Jul 2010 06:30:44 +0000 (06:30 +0000)]
The bits in the cmode field of 32-bit VMOV immediate instructions all depend
of the value of the immediate.

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

14 years agorevert r108320, I see the failures now...
Chris Lattner [Wed, 14 Jul 2010 06:16:35 +0000 (06:16 +0000)]
revert r108320, I see the failures now...

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

14 years agoreapply benjamin's instcombine patch, I don't see anything wrong with it and can...
Chris Lattner [Wed, 14 Jul 2010 05:59:13 +0000 (05:59 +0000)]
reapply benjamin's instcombine patch, I don't see anything wrong with it and can't repro any problems with a manual self-host.

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

14 years agoRe-enable the test with fix.
Evan Cheng [Wed, 14 Jul 2010 05:49:23 +0000 (05:49 +0000)]
Re-enable the test with fix.

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

14 years agotemporarily disable to test to fix buildbots.
Chris Lattner [Wed, 14 Jul 2010 02:21:59 +0000 (02:21 +0000)]
temporarily disable to test to fix buildbots.

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

14 years agofix a bug found by a warning I added to clang this morning.
Chris Lattner [Wed, 14 Jul 2010 01:57:17 +0000 (01:57 +0000)]
fix a bug found by a warning I added to clang this morning.

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

14 years agoTeach ProcessImplicitDefs to transform more COPY instructions into IMPLICIT_DEF ...
Evan Cheng [Wed, 14 Jul 2010 01:22:19 +0000 (01:22 +0000)]
Teach ProcessImplicitDefs to transform more COPY instructions into IMPLICIT_DEF (and subsequently eliminate them). This allows machine LICM to hoist IMPLICIT_DEF's. PR7620.

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

14 years agoAdd an ARM-specific DAG combining to avoid redundant VDUPLANE nodes.
Bob Wilson [Wed, 14 Jul 2010 01:22:12 +0000 (01:22 +0000)]
Add an ARM-specific DAG combining to avoid redundant VDUPLANE nodes.
Radar 7373643.

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

14 years agoDon't propagate debug locations to instructions for materializing
Dan Gohman [Wed, 14 Jul 2010 01:07:44 +0000 (01:07 +0000)]
Don't propagate debug locations to instructions for materializing
constants, since they may not be emited near the other instructions
which get the same line, and this confuses debug info.

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

14 years agoAdd AVX 256-bit compare instructions and a bunch of testcases
Bruno Cardoso Lopes [Tue, 13 Jul 2010 22:06:38 +0000 (22:06 +0000)]
Add AVX 256-bit compare instructions and a bunch of testcases

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

14 years agoRemove vestigial decl.
Jakob Stoklund Olesen [Tue, 13 Jul 2010 21:19:08 +0000 (21:19 +0000)]
Remove vestigial decl.

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

14 years agoPrint VNInfo flags.
Jakob Stoklund Olesen [Tue, 13 Jul 2010 21:19:05 +0000 (21:19 +0000)]
Print VNInfo flags.

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

14 years agoUse a target-specific VMOVIMM DAG node instead of BUILD_VECTOR to represent
Bob Wilson [Tue, 13 Jul 2010 21:16:48 +0000 (21:16 +0000)]
Use a target-specific VMOVIMM DAG node instead of BUILD_VECTOR to represent
NEON VMOV-immediate instructions.  This simplifies some things.

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

14 years agoAVX 256-bit conversion instructions
Bruno Cardoso Lopes [Tue, 13 Jul 2010 21:07:28 +0000 (21:07 +0000)]
AVX 256-bit conversion instructions
Add the x86 VEX_L form to handle special cases where VEX_L must be set.

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

14 years agoUpdate comment.
Evan Cheng [Tue, 13 Jul 2010 21:03:14 +0000 (21:03 +0000)]
Update comment.

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

14 years agoIn inline asm treat indirect 'X' constraint as 'm'.
Dale Johannesen [Tue, 13 Jul 2010 20:17:05 +0000 (20:17 +0000)]
In inline asm treat indirect 'X' constraint as 'm'.
This may not be right in all cases, but it's better
than asserting which it was doing before.  PR 7528.

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

14 years agoAdded a check that pusha cannot be encoded in 64-bit mode.
Kevin Enderby [Tue, 13 Jul 2010 20:05:41 +0000 (20:05 +0000)]
Added a check that pusha cannot be encoded in 64-bit mode.

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

14 years agoAdd an assertion to make PR7542 fail consistently.
Jakob Stoklund Olesen [Tue, 13 Jul 2010 19:56:28 +0000 (19:56 +0000)]
Add an assertion to make PR7542 fail consistently.

LiveInterval::overlapsFrom dereferences end() if it is called on an empty
interval.

It would be reasonable to just return false - an empty interval doesn't overlap
anything, but I want to know who is doing it first.

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

14 years agoFix the Named Metadata example to make it clear which specific
Dan Gohman [Tue, 13 Jul 2010 19:48:13 +0000 (19:48 +0000)]
Fix the Named Metadata example to make it clear which specific
construct is the named metadata.

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

14 years agoAdd support for empty named metadata too. This isn't particularly
Dan Gohman [Tue, 13 Jul 2010 19:42:44 +0000 (19:42 +0000)]
Add support for empty named metadata too. This isn't particularly
useful, but it is nice for consistency.

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

14 years agoFix LiveInterval::overlaps so it doesn't claim touching intervals overlap.
Jakob Stoklund Olesen [Tue, 13 Jul 2010 19:42:20 +0000 (19:42 +0000)]
Fix LiveInterval::overlaps so it doesn't claim touching intervals overlap.
Also, one binary search is enough.

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

14 years agoAdd support for empty metadata nodes: !{}.
Dan Gohman [Tue, 13 Jul 2010 19:33:27 +0000 (19:33 +0000)]
Add support for empty metadata nodes: !{}.

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

14 years agoExtend the r107852 optimization which turns some fp compare to code sequence using...
Evan Cheng [Tue, 13 Jul 2010 19:27:42 +0000 (19:27 +0000)]
Extend the r107852 optimization which turns some fp compare to code sequence using only i32 operations. It now optimize some f64 compares when fp compare is exceptionally slow (e.g. cortex-a8). It also catches comparison against 0.0.

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

14 years agoAdd an ARM "feature". Cortex-a8 fp comparison is very slow (> 20 cycles).
Evan Cheng [Tue, 13 Jul 2010 19:21:50 +0000 (19:21 +0000)]
Add an ARM "feature". Cortex-a8 fp comparison is very slow (> 20 cycles).

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

14 years agoPatched Makefile.rules to allow objective C and objective C++ compilation.
Greg Clayton [Tue, 13 Jul 2010 18:47:09 +0000 (18:47 +0000)]
Patched Makefile.rules to allow objective C and objective C++ compilation.
This allows LLDB (llvm/tools/lldb) to build on Mac OS X.

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

14 years ago-enable-unsafe-fp-math should not imply -enable-finite-only-fp-math.
Evan Cheng [Tue, 13 Jul 2010 18:46:14 +0000 (18:46 +0000)]
-enable-unsafe-fp-math should not imply -enable-finite-only-fp-math.

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

14 years agoGrammar.
Eric Christopher [Tue, 13 Jul 2010 18:27:13 +0000 (18:27 +0000)]
Grammar.

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

14 years agoFix PR number.
Dale Johannesen [Tue, 13 Jul 2010 18:14:47 +0000 (18:14 +0000)]
Fix PR number.

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