oota-llvm.git
13 years agoFix merging base-updates for VLDM/VSTM: Before I switched these instructions
Bob Wilson [Fri, 10 Sep 2010 05:15:04 +0000 (05:15 +0000)]
Fix merging base-updates for VLDM/VSTM: Before I switched these instructions
to use AddrMode4, there was a count of the registers stored in one of the
operands.  I changed that to just count the operands but forgot to adjust for
the size of D registers.  This was noticed by Evan as a performance problem
but it is a potential correctness bug as well, since it is possible that this
could merge a base update with a non-matching immediate.

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

13 years agoTeach if-converter to be more careful with predicating instructions that would
Evan Cheng [Fri, 10 Sep 2010 01:29:16 +0000 (01:29 +0000)]
Teach if-converter to be more careful with predicating instructions that would
take multiple cycles to decode.
For the current if-converter clients (actually only ARM), the instructions that
are predicated on false are not nops. They would still take machine cycles to
decode. Micro-coded instructions such as LDM / STM can potentially take multiple
cycles to decode. If-converter should take treat them as non-micro-coded
simple instructions.

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

13 years agoFix build error.
Eric Christopher [Fri, 10 Sep 2010 00:35:09 +0000 (00:35 +0000)]
Fix build error.

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

13 years agoUpdate comments, reorganize some code, rename variables to be
Eric Christopher [Fri, 10 Sep 2010 00:34:35 +0000 (00:34 +0000)]
Update comments, reorganize some code, rename variables to be
more clear.  No functional change.

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

13 years ago64-bit fp loads can come straight out of the constant pool, not as
Eric Christopher [Thu, 9 Sep 2010 23:50:00 +0000 (23:50 +0000)]
64-bit fp loads can come straight out of the constant pool, not as
bad as I'd thought.

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

13 years agoDiscard metadata produced by LLVM 2.7. The value enumeration it used
Dan Gohman [Thu, 9 Sep 2010 23:12:39 +0000 (23:12 +0000)]
Discard metadata produced by LLVM 2.7. The value enumeration it used
is different from what the code now uses in a two ways: NamedMDNodes
were considered Values and included in the numbering, and the
function-local metadata counter wasn't reset between functions.

The later problem breaks lazy deserialization, so instead of trying
to emulate the old numbering, just drop the old metadata. The only
in-tree use case is debug info with LTO, where the QOI loss is
considered acceptable.

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

13 years agollvm-mc: Don't crash when using -n and we see a directive before the initial section.
Daniel Dunbar [Thu, 9 Sep 2010 22:42:59 +0000 (22:42 +0000)]
llvm-mc: Don't crash when using -n and we see a directive before the initial section.
 - This is annoying, because we have to scatter this check everywhere that could emit real data, but I see no better solution.

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

13 years agollvm-mc: Make sure we exit != 0 if any errors are encountered.
Daniel Dunbar [Thu, 9 Sep 2010 22:42:56 +0000 (22:42 +0000)]
llvm-mc: Make sure we exit != 0 if any errors are encountered.

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

13 years agoXFAIL test under valgrind. It is not really our problem if sh is leaking.
Jakob Stoklund Olesen [Thu, 9 Sep 2010 22:02:13 +0000 (22:02 +0000)]
XFAIL test under valgrind. It is not really our problem if sh is leaking.

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

13 years agoSIToFP and FPToSI conversions work only on fp-reg to fp-reg. Move
Eric Christopher [Thu, 9 Sep 2010 21:44:45 +0000 (21:44 +0000)]
SIToFP and FPToSI conversions work only on fp-reg to fp-reg.  Move
some data around and implement a couple of move routines to do this.

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

13 years agoMDNodes are not Constants.
Dan Gohman [Thu, 9 Sep 2010 20:54:24 +0000 (20:54 +0000)]
MDNodes are not Constants.

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

13 years agoPrint invalid metadata references as <badref>, for consistency with
Dan Gohman [Thu, 9 Sep 2010 20:53:58 +0000 (20:53 +0000)]
Print invalid metadata references as <badref>, for consistency with
regular value references.

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

13 years agoNew "move to fp reg" routine. Use it.
Eric Christopher [Thu, 9 Sep 2010 20:49:25 +0000 (20:49 +0000)]
New "move to fp reg" routine.  Use it.

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

13 years ago"Strike that, reverse it." -- Mr. Wonka.
Eric Christopher [Thu, 9 Sep 2010 20:36:19 +0000 (20:36 +0000)]
"Strike that, reverse it." -- Mr. Wonka.

Truncate when truncating, extend when extending.

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

13 years agoWhat the loop unroller cares about, rather than just not unrolling loops with calls, is
Owen Anderson [Thu, 9 Sep 2010 20:32:23 +0000 (20:32 +0000)]
What the loop unroller cares about, rather than just not unrolling loops with calls, is
not unrolling loops that contain calls that would be better off getting inlined.  This mostly
comes up when an interleaved devirtualization pass has devirtualized a call which the inliner
will inline on a future pass.  Thus, rather than blocking all loops containing calls, add
a metric for "inline candidate calls" and block loops containing those instead.

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

13 years agoAdd FPTrunc, fix some bugs where I forgot to update the value map.
Eric Christopher [Thu, 9 Sep 2010 20:26:31 +0000 (20:26 +0000)]
Add FPTrunc, fix some bugs where I forgot to update the value map.

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

13 years agoRevert r113439, which relaxed the requirement that loops containing calls cannot...
Owen Anderson [Thu, 9 Sep 2010 20:02:23 +0000 (20:02 +0000)]
Revert r113439, which relaxed the requirement that loops containing calls cannot be unrolled.  After some discussion,
there seems to be a better way to achieve the same effect.

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

13 years agor113526 introduced an unintended change to the loop unrolling threshold. Revert it.
Owen Anderson [Thu, 9 Sep 2010 19:11:57 +0000 (19:11 +0000)]
r113526 introduced an unintended change to the loop unrolling threshold.  Revert it.

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

13 years agoFix typo in code to cap the loop code size reduction calculation.
Owen Anderson [Thu, 9 Sep 2010 19:08:59 +0000 (19:08 +0000)]
Fix typo in code to cap the loop code size reduction calculation.

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

13 years agoUse code-size reduction metrics to estimate the amount of savings we'll get when...
Owen Anderson [Thu, 9 Sep 2010 19:07:31 +0000 (19:07 +0000)]
Use code-size reduction metrics to estimate the amount of savings we'll get when we unroll a loop.
Next step is to recalculate the threshold values given this new heuristic.

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

13 years agoBasic FP->Int, Int->FP conversions.
Eric Christopher [Thu, 9 Sep 2010 18:54:59 +0000 (18:54 +0000)]
Basic FP->Int, Int->FP conversions.

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

13 years agoAdd one more pattern to fallback movddup
Bruno Cardoso Lopes [Thu, 9 Sep 2010 18:48:34 +0000 (18:48 +0000)]
Add one more pattern to fallback movddup

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

13 years agoExtend the getDependence query with support for PHI translation.
Dan Gohman [Thu, 9 Sep 2010 18:37:31 +0000 (18:37 +0000)]
Extend the getDependence query with support for PHI translation.

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

13 years agoAdd a getPointerOperand() helper function to VAArgInst, for consistency
Dan Gohman [Thu, 9 Sep 2010 18:32:40 +0000 (18:32 +0000)]
Add a getPointerOperand() helper function to VAArgInst, for consistency
with LoadInst and StoreInst.

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

13 years agoFor each instruction itinerary class, specify the number of micro-ops each
Evan Cheng [Thu, 9 Sep 2010 18:18:55 +0000 (18:18 +0000)]
For each instruction itinerary class, specify the number of micro-ops each
instruction in the class would be decoded to. Or zero if the number of
uOPs must be determined dynamically.

This will be used to determine the cost-effectiveness of predicating a
micro-coded instruction.

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

13 years agoFix this comment.
Dan Gohman [Thu, 9 Sep 2010 18:04:22 +0000 (18:04 +0000)]
Fix this comment.

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

13 years agoMCELF: Write relocation fragments in the right endian.
Benjamin Kramer [Thu, 9 Sep 2010 18:01:29 +0000 (18:01 +0000)]
MCELF: Write relocation fragments in the right endian.

- This code is gross, but does the job for now.

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

13 years agoMake ELF OS ABI dependent on the OS from target triple.
Roman Divacky [Thu, 9 Sep 2010 17:57:50 +0000 (17:57 +0000)]
Make ELF OS ABI dependent on the OS from target triple.

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

13 years agobuild: Allow subdir Makefiles to provide an alternate location for the SRCDIR
Daniel Dunbar [Thu, 9 Sep 2010 17:38:11 +0000 (17:38 +0000)]
build: Allow subdir Makefiles to provide an alternate location for the SRCDIR
Makefile, which can be used to allow building out of tree sources.

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

13 years agoMove remaining MMX instructions from SSE to MMX.
Dale Johannesen [Thu, 9 Sep 2010 17:13:07 +0000 (17:13 +0000)]
Move remaining MMX instructions from SSE to MMX.

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

13 years agoRefactor code-size reduction estimation methods out of InlineCostAnalyzer and into...
Owen Anderson [Thu, 9 Sep 2010 16:56:42 +0000 (16:56 +0000)]
Refactor code-size reduction estimation methods out of InlineCostAnalyzer and into CodeMetrics.  They
don't use any InlineCostAnalyzer state, and are useful for other clients who don't necessarily want to use
all of InlineCostAnalyzer's logic, some of which is fairly inlining-specific.

No intended functionality change.

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

13 years agoMC: Give a (lame) hard error if a .org directive would create an unreasonably
Daniel Dunbar [Thu, 9 Sep 2010 16:23:33 +0000 (16:23 +0000)]
MC: Give a (lame) hard error if a .org directive would create an unreasonably
large object file (> 1GB).

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

13 years agotests: XFAIL a handful of tests on the vg_leak builder, so we can get back to
Daniel Dunbar [Thu, 9 Sep 2010 15:50:19 +0000 (15:50 +0000)]
tests: XFAIL a handful of tests on the vg_leak builder, so we can get back to
green.

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

13 years agoprojects: Don't try to build libcxx if one happens to have it checked out into
Daniel Dunbar [Thu, 9 Sep 2010 15:49:32 +0000 (15:49 +0000)]
projects: Don't try to build libcxx if one happens to have it checked out into
llvm/projects.

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

13 years agoAdd an elf-dumper utility.
Benjamin Kramer [Thu, 9 Sep 2010 15:00:41 +0000 (15:00 +0000)]
Add an elf-dumper utility.

- Output format and some of the code stolen from macho-dump.
- Somewhat incomplete and probably buggy.
- Comes with a very basic test.

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

13 years agolib/System/Host.cpp: 7bit-ize. Eliminate "TM" and "(R)" in comments.
NAKAMURA Takumi [Thu, 9 Sep 2010 13:30:48 +0000 (13:30 +0000)]
lib/System/Host.cpp: 7bit-ize. Eliminate "TM" and "(R)" in comments.

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

13 years agoGet rid of the last use of -m64 in FrontendC. This solution
Duncan Sands [Thu, 9 Sep 2010 12:57:29 +0000 (12:57 +0000)]
Get rid of the last use of -m64 in FrontendC.  This solution
of checking for either 4 or 8 is not very satisfactory, but
it would catch the original problem (an alignment of 1).

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

13 years agoAnother test that uses -m64. Here too it looks like it can be
Duncan Sands [Thu, 9 Sep 2010 12:48:04 +0000 (12:48 +0000)]
Another test that uses -m64.  Here too it looks like it can be
removed.  Not that the XTARGET wasn't doing anything since it
does nothing without an accompanying XFAIL.

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

13 years agoOn i386, llvm-gcc cannot be assumed to support -m64. Since these
Duncan Sands [Thu, 9 Sep 2010 12:43:44 +0000 (12:43 +0000)]
On i386, llvm-gcc cannot be assumed to support -m64.  Since these
tests pass here (i686-linux and x86-64-linux) without -m64, simply
remove the -m64.

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

13 years agoThis script is executable.
Duncan Sands [Thu, 9 Sep 2010 09:37:54 +0000 (09:37 +0000)]
This script is executable.

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

13 years agoSilence compiler warning.
Kalle Raiskila [Thu, 9 Sep 2010 07:30:15 +0000 (07:30 +0000)]
Silence compiler warning.

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

13 years agoFix NEON VLD pseudo instruction itineraries that were incorrectly copied from
Bob Wilson [Thu, 9 Sep 2010 05:40:26 +0000 (05:40 +0000)]
Fix NEON VLD pseudo instruction itineraries that were incorrectly copied from
the VST pseudos.  The VLD/VST scheduling still needs work (see pr6722), but
at least we shouldn't confuse the loads with the stores.

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

13 years agoNuke whitespace and fix some indenting.
Eric Christopher [Thu, 9 Sep 2010 01:06:51 +0000 (01:06 +0000)]
Nuke whitespace and fix some indenting.

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

13 years agoMove most MMX instructions (defined as anything that
Dale Johannesen [Thu, 9 Sep 2010 01:02:39 +0000 (01:02 +0000)]
Move most MMX instructions (defined as anything that
uses MMX, even if it also uses other things) from InstrSSE
into InstrMMX.  No (intended) functional change.

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

13 years agoHandle 64-bit floating point binops as well.
Eric Christopher [Thu, 9 Sep 2010 01:02:03 +0000 (01:02 +0000)]
Handle 64-bit floating point binops as well.

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

13 years agoBasic 32-bit FP operations.
Eric Christopher [Thu, 9 Sep 2010 00:53:57 +0000 (00:53 +0000)]
Basic 32-bit FP operations.

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

13 years agoFor double-spaced VLD3/VLD4 instructions, copy the explicit super-register use
Bob Wilson [Thu, 9 Sep 2010 00:38:32 +0000 (00:38 +0000)]
For double-spaced VLD3/VLD4 instructions, copy the explicit super-register use
operand from the pseudo instruction to the new instruction as an implicit use.
This will preserve any other flags (e.g., kill) on the operand.

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

13 years agoHandle float->double extension.
Eric Christopher [Thu, 9 Sep 2010 00:26:48 +0000 (00:26 +0000)]
Handle float->double extension.

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

13 years agoRewrite TargetMaterializeConstant splitting it out into two functions
Eric Christopher [Thu, 9 Sep 2010 00:19:41 +0000 (00:19 +0000)]
Rewrite TargetMaterializeConstant splitting it out into two functions
for integer and fp constants. Implement todo to use vfp3 instructions
to materialize easy constants if we can.

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

13 years agoSimplify copying over operands from pseudo NEON load/store instructions.
Bob Wilson [Thu, 9 Sep 2010 00:15:32 +0000 (00:15 +0000)]
Simplify copying over operands from pseudo NEON load/store instructions.
For VLD3/VLD4 with double-spaced registers, add the implicit use of the
super register for both the instruction loading the even registers and the
instruction loading the odd registers.

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

13 years agoRearrange for better alignment and less padding
Jakob Stoklund Olesen [Wed, 8 Sep 2010 23:54:00 +0000 (23:54 +0000)]
Rearrange for better alignment and less padding

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

13 years agoClean up a comment.
Bob Wilson [Wed, 8 Sep 2010 23:39:54 +0000 (23:39 +0000)]
Clean up a comment.

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

13 years agoVery basic compare support.
Eric Christopher [Wed, 8 Sep 2010 23:13:45 +0000 (23:13 +0000)]
Very basic compare support.

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

13 years agoRelax the "don't unroll loops containing calls" rule. Instead, when a loop contains...
Owen Anderson [Wed, 8 Sep 2010 23:10:07 +0000 (23:10 +0000)]
Relax the "don't unroll loops containing calls" rule.  Instead, when a loop contains a call, lower the
unrolling threshold to the optimize-for-size threshold.  Basically, for loops containing calls, unrolling
can still be profitable as long as the loop is REALLY small.

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

13 years agoDelete dead code.
Eric Christopher [Wed, 8 Sep 2010 22:58:35 +0000 (22:58 +0000)]
Delete dead code.

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

13 years agoFix LDM_RET schedule itinery.
Evan Cheng [Wed, 8 Sep 2010 22:57:08 +0000 (22:57 +0000)]
Fix LDM_RET schedule itinery.

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

13 years agofix rdar://8407548, I missed the commuted form of xchg/test without a suffix.
Chris Lattner [Wed, 8 Sep 2010 22:27:05 +0000 (22:27 +0000)]
fix rdar://8407548, I missed the commuted form of xchg/test without a suffix.

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

13 years agofix wonky formatting.
Chris Lattner [Wed, 8 Sep 2010 22:22:10 +0000 (22:22 +0000)]
fix wonky formatting.

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

13 years agoGeneralize instcombine's support for combining multiple bit checks into a single...
Owen Anderson [Wed, 8 Sep 2010 22:16:17 +0000 (22:16 +0000)]
Generalize instcombine's support for combining multiple bit checks into a single test.  Patch by Dirk Steinke!

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

13 years agofix bugs in push/pop segment support, rdar://8407242
Chris Lattner [Wed, 8 Sep 2010 22:13:08 +0000 (22:13 +0000)]
fix bugs in push/pop segment support, rdar://8407242

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

13 years agoAdd intrinsic-based patterns for MMX PINSRW and PEXTRW.
Dale Johannesen [Wed, 8 Sep 2010 22:08:40 +0000 (22:08 +0000)]
Add intrinsic-based patterns for MMX PINSRW and PEXTRW.

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

13 years agoMake the loads/stores match the type we really want to store.
Eric Christopher [Wed, 8 Sep 2010 21:49:50 +0000 (21:49 +0000)]
Make the loads/stores match the type we really want to store.

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

13 years agoRemove dead code and data.
Jakob Stoklund Olesen [Wed, 8 Sep 2010 21:21:28 +0000 (21:21 +0000)]
Remove dead code and data.

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

13 years agoCheck in forgotten file. Should fix build.
Dale Johannesen [Wed, 8 Sep 2010 21:09:48 +0000 (21:09 +0000)]
Check in forgotten file.  Should fix build.

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

13 years agoSlight cleanup, use only one form of MMXI_binop_rm_int.
Dale Johannesen [Wed, 8 Sep 2010 20:54:00 +0000 (20:54 +0000)]
Slight cleanup, use only one form of MMXI_binop_rm_int.

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

13 years agoCMake: Use the svn revision information from git-svn if available.
Michael J. Spencer [Wed, 8 Sep 2010 20:49:40 +0000 (20:49 +0000)]
CMake: Use the svn revision information from git-svn if available.

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

13 years agoRemove --with-gxx-include-dir option because it's causing problems on non-Darwin...
Bill Wendling [Wed, 8 Sep 2010 20:21:11 +0000 (20:21 +0000)]
Remove --with-gxx-include-dir option because it's causing problems on non-Darwin platforms.

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

13 years agoRe-enable usage of the ARM base pointer. r113394 fixed the known failures.
Jim Grosbach [Wed, 8 Sep 2010 20:12:02 +0000 (20:12 +0000)]
Re-enable usage of the ARM base pointer. r113394 fixed the known failures.
Re-running some nightly testers w/ it enabled to verify.

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

13 years agoAdd an option to not test ObjC for those platforms which don't support it.
Bill Wendling [Wed, 8 Sep 2010 20:09:14 +0000 (20:09 +0000)]
Add an option to not test ObjC for those platforms which don't support it.

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

13 years agoCorrect variable name.
Duncan Sands [Wed, 8 Sep 2010 19:58:15 +0000 (19:58 +0000)]
Correct variable name.

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

13 years agoFix errant fall-throughs causing the base pointer to be used when the frame
Jim Grosbach [Wed, 8 Sep 2010 19:55:28 +0000 (19:55 +0000)]
Fix errant fall-throughs causing the base pointer to be used when the frame
pointer was intended. rdar://8401980

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

13 years agoMove the number of cpus logic to somewhere more logical.
Duncan Sands [Wed, 8 Sep 2010 19:50:25 +0000 (19:50 +0000)]
Move the number of cpus logic to somewhere more logical.

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

13 years agoRemove ssp from this test.
Eric Christopher [Wed, 8 Sep 2010 19:32:34 +0000 (19:32 +0000)]
Remove ssp from this test.

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

13 years agoAdd intrinsic forms of mmx<->sse conversions. Notes:
Dale Johannesen [Wed, 8 Sep 2010 19:15:38 +0000 (19:15 +0000)]
Add intrinsic forms of mmx<->sse conversions.  Notes:
Omission of memory form of PI2PD is intentional; this
does not use an MMX register and does not put the chip
into MMX mode (PI2PS, oddly enough, does).
Operands of PI2PS follow the gcc builtin, not Intel.

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

13 years agoRewrite TargetMaterializeConstant.
Eric Christopher [Wed, 8 Sep 2010 18:56:34 +0000 (18:56 +0000)]
Rewrite TargetMaterializeConstant.

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

13 years agoRemove dead code.
Jakob Stoklund Olesen [Wed, 8 Sep 2010 18:50:24 +0000 (18:50 +0000)]
Remove dead code.

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

13 years agoMove private member functions to the end of the class declaration.
Owen Anderson [Wed, 8 Sep 2010 18:41:07 +0000 (18:41 +0000)]
Move private member functions to the end of the class declaration.

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

13 years agoA script that tests a certain release candidate in several modes. It does a
Bill Wendling [Wed, 8 Sep 2010 18:32:31 +0000 (18:32 +0000)]
A script that tests a certain release candidate in several modes. It does a
2-phase build of llvm and llvm-gcc, similar to what the buildbots do, and runs
the regression testsuite.

Things to do:

- Work out some bugs with llvm-gcc flags.
- Not all platforms support ObjC.
- Run the test-suite.

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

13 years agoAdd a directory for release management scripts.
Bill Wendling [Wed, 8 Sep 2010 18:30:06 +0000 (18:30 +0000)]
Add a directory for release management scripts.

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

13 years agoMake module ownership methods on LLVMContext private, and make Module a friend
Owen Anderson [Wed, 8 Sep 2010 18:22:11 +0000 (18:22 +0000)]
Make module ownership methods on LLVMContext private, and make Module a friend
so that it can access them.  These are not intended to be externally accessible APIs.

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

13 years agoMinor change. Fix comments and remove unused and redundant code
Bruno Cardoso Lopes [Wed, 8 Sep 2010 18:12:31 +0000 (18:12 +0000)]
Minor change. Fix comments and remove unused and redundant code

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

13 years agoELF_STB_Local is 0 so setting and checking it must be done specially
Roman Divacky [Wed, 8 Sep 2010 18:08:40 +0000 (18:08 +0000)]
ELF_STB_Local is 0 so setting and checking it must be done specially

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

13 years agoClarify the ownership model of LLVMContext and Module. Namely, contexts own
Owen Anderson [Wed, 8 Sep 2010 18:03:32 +0000 (18:03 +0000)]
Clarify the ownership model of LLVMContext and Module. Namely, contexts own
modules are instantiated in them.  If the context is deleted, all of its owned
modules are also deleted.

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

13 years agox86 vector shuffle lowering now relies only on target specific
Bruno Cardoso Lopes [Wed, 8 Sep 2010 17:43:25 +0000 (17:43 +0000)]
x86 vector shuffle lowering now relies only on target specific
nodes to emit shuffles and don't do isel mask matching anymore.
- Add the selection of the remaining shuffle opcode (movddup)
- Introduce two new functions to "recognize" where we may get
potential folds and add several comments to them explaining why
they are not yet in the desidered shape.
- Add more patterns to fallback the case where we select
a specific shuffle opcode as if it could fold a load, but it
can't, so remap to a valid instruction.
- Add a couple of FIXMEs to address in the following days once
there's a good solution to the current folding problem.

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

13 years agoBe more careful about when to do dynamic stack realignment. Since we have an
Jim Grosbach [Wed, 8 Sep 2010 17:22:12 +0000 (17:22 +0000)]
Be more careful about when to do dynamic stack realignment. Since we have an
option to disable base pointer usage, pay attention to it when deciding
if we can realign (if no base pointer and VLAs, we can't).

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

13 years agoAdd missing assert
Jim Grosbach [Wed, 8 Sep 2010 17:05:45 +0000 (17:05 +0000)]
Add missing assert

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

13 years agoExecute all Pass Printers even if -quiet is set.
Tobias Grosser [Wed, 8 Sep 2010 15:02:51 +0000 (15:02 +0000)]
Execute all Pass Printers even if -quiet is set.

Follow the same logic in the LoopPass, ModulePass and CallGraphSCCPass printers,
as it was already used in the BasicBlockPass and FunctionPass printers. This is
more consistent.

The other option would have been to completely disable dumping the analysis
information. However, as this information is the only information printed if the
-analysis flag is set, calling opt would not do anything at all.

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

13 years agoInclude original pass name in the PassPrinter's name.
Tobias Grosser [Wed, 8 Sep 2010 15:02:47 +0000 (15:02 +0000)]
Include original pass name in the PassPrinter's name.

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

13 years agoUnresolved weak symbols have value equal zero.
Roman Divacky [Wed, 8 Sep 2010 14:29:45 +0000 (14:29 +0000)]
Unresolved weak symbols have value equal zero.

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

13 years agoFix CellSPU vector shuffles, again.
Kalle Raiskila [Wed, 8 Sep 2010 11:53:38 +0000 (11:53 +0000)]
Fix CellSPU vector shuffles, again.
Some cases of lowering to rotate were miscompiled.

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

13 years agoadd support for the commuted form of the test instruction, rdar://8018260.
Chris Lattner [Wed, 8 Sep 2010 05:51:12 +0000 (05:51 +0000)]
add support for the commuted form of the test instruction, rdar://8018260.

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

13 years agoimplement proper support for sysret{,l,q}, rdar://8403907
Chris Lattner [Wed, 8 Sep 2010 05:45:34 +0000 (05:45 +0000)]
implement proper support for sysret{,l,q}, rdar://8403907

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

13 years agoimplement the iret suite of instructions properly,
Chris Lattner [Wed, 8 Sep 2010 05:38:31 +0000 (05:38 +0000)]
implement the iret suite of instructions properly,
fixing rdar://8403974

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

13 years agoadd support for instruction prefixes on the same line as the instruction,
Chris Lattner [Wed, 8 Sep 2010 05:17:37 +0000 (05:17 +0000)]
add support for instruction prefixes on the same line as the instruction,
implementing rdar://8033482 and PR7254.

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

13 years agochange the MC "ParseInstruction" interface to make it the
Chris Lattner [Wed, 8 Sep 2010 05:10:46 +0000 (05:10 +0000)]
change the MC "ParseInstruction" interface to make it the
implementation's job to check for and lex the EndOfStatement
marker.

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

13 years agogas accepts xchg <mem>, <reg> as a synonym for xchg <reg>, <mem>.
Chris Lattner [Wed, 8 Sep 2010 04:53:27 +0000 (04:53 +0000)]
gas accepts xchg <mem>, <reg> as a synonym for xchg <reg>, <mem>.
Add this to the mc assembler, fixing PR8061

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

13 years agoARM/Disassembler: Fix definitions incompatible(unsigned and uint32_t) to Cygwin-1...
NAKAMURA Takumi [Wed, 8 Sep 2010 04:48:17 +0000 (04:48 +0000)]
ARM/Disassembler: Fix definitions incompatible(unsigned and uint32_t) to Cygwin-1.5, following up to r113255.

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

13 years agofix the encoding of the "jump on *cx" family of instructions,
Chris Lattner [Wed, 8 Sep 2010 04:30:51 +0000 (04:30 +0000)]
fix the encoding of the "jump on *cx" family of instructions,
rdar://8061602

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

13 years agoremove trailing whitespace
Jim Grosbach [Wed, 8 Sep 2010 03:54:02 +0000 (03:54 +0000)]
remove trailing whitespace

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

13 years agoremove obsolete comment
Jim Grosbach [Wed, 8 Sep 2010 03:51:44 +0000 (03:51 +0000)]
remove obsolete comment

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