oota-llvm.git
14 years agoConvert llvmc tests to FileCheck.
Mikhail Glushenkov [Tue, 15 Dec 2009 07:21:14 +0000 (07:21 +0000)]
Convert llvmc tests to FileCheck.

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

14 years agoSupport hook invocation from 'append_cmd'.
Mikhail Glushenkov [Tue, 15 Dec 2009 07:20:50 +0000 (07:20 +0000)]
Support hook invocation from 'append_cmd'.

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

14 years agoFix an encoding bug.
Evan Cheng [Tue, 15 Dec 2009 06:49:02 +0000 (06:49 +0000)]
Fix an encoding bug.

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

14 years agoadd an ALWAYS_INLINE macro, which does the obvious thing.
Chris Lattner [Tue, 15 Dec 2009 06:14:33 +0000 (06:14 +0000)]
add an ALWAYS_INLINE macro, which does the obvious thing.

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

14 years agoFor fastcc on x86, let ECX be used as a return register after EAX and EDX
Kenneth Uildriks [Tue, 15 Dec 2009 03:27:52 +0000 (03:27 +0000)]
For fastcc on x86, let ECX be used as a return register after EAX and EDX

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

14 years agoNames from dependent base classes are not found by unqualified lookup.
John McCall [Tue, 15 Dec 2009 03:10:26 +0000 (03:10 +0000)]
Names from dependent base classes are not found by unqualified lookup.

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

14 years agoDisable 91381 for now. It's miscompiling ARMISelDAG2DAG.cpp.
Evan Cheng [Tue, 15 Dec 2009 03:07:11 +0000 (03:07 +0000)]
Disable 91381 for now. It's miscompiling ARMISelDAG2DAG.cpp.

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

14 years agoValidate the generated C++ code in llvmc tests.
Mikhail Glushenkov [Tue, 15 Dec 2009 03:04:52 +0000 (03:04 +0000)]
Validate the generated C++ code in llvmc tests.

Checks that the code generated by 'tblgen --emit-llvmc' can be actually
compiled. Also fixes two bugs found in this way:

- forward_transformed_value didn't work with non-list arguments
- cl::ZeroOrOne is now called cl::Optional

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

14 years agoPipe 'grep' output to 'count'.
Mikhail Glushenkov [Tue, 15 Dec 2009 03:04:14 +0000 (03:04 +0000)]
Pipe 'grep' output to 'count'.

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

14 years agoAllow $CALL(Hook, '$INFILE') for non-join tools.
Mikhail Glushenkov [Tue, 15 Dec 2009 03:04:02 +0000 (03:04 +0000)]
Allow $CALL(Hook, '$INFILE') for non-join tools.

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

14 years agoSmall documentation update.
Mikhail Glushenkov [Tue, 15 Dec 2009 03:03:37 +0000 (03:03 +0000)]
Small documentation update.

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

14 years agoMake 91378 more conservative.
Evan Cheng [Tue, 15 Dec 2009 03:00:32 +0000 (03:00 +0000)]
Make 91378 more conservative.
1. Only perform (zext (shl (zext x), y)) -> (shl (zext x), y) when y is a constant. This makes sure it remove at least one zest.
2. If the shift is a left shift, make sure the original shift cannot shift out bits.

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

14 years agoYou can't use typedefs to declare template member specializations, and
John McCall [Tue, 15 Dec 2009 02:35:24 +0000 (02:35 +0000)]
You can't use typedefs to declare template member specializations, and
clang enforces it.

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

14 years agoInitial work on disabling the scheduler. This is a work in progress, and this
Bill Wendling [Tue, 15 Dec 2009 01:54:51 +0000 (01:54 +0000)]
Initial work on disabling the scheduler. This is a work in progress, and this
stuff isn't used just yet.

We want to model the GCC `-fno-schedule-insns' and `-fno-schedule-insns2'
flags. The hypothesis is that the people who use these flags know what they are
doing, and have hand-optimized the C code to reduce latencies and other
conflicts.

The idea behind our scheme to turn off scheduling is to create a map "on the
side" during DAG generation. It will order the nodes by how they appeared in the
code. This map is then used during scheduling to get the ordering.

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

14 years agoTail duplication should zap a copy it inserted for SSA update if the copy is the...
Evan Cheng [Tue, 15 Dec 2009 01:44:10 +0000 (01:44 +0000)]
Tail duplication should zap a copy it inserted for SSA update if the copy is the only use of its source.

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

14 years agoUse sbb x, x to materialize carry bit in a GPR. The result is all one's or all zero's.
Evan Cheng [Tue, 15 Dec 2009 00:53:42 +0000 (00:53 +0000)]
Use sbb x, x to materialize carry bit in a GPR. The result is all one's or all zero's.

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

14 years agoFold (zext (and x, cst)) -> (and (zext x), cst).
Evan Cheng [Tue, 15 Dec 2009 00:52:11 +0000 (00:52 +0000)]
Fold (zext (and x, cst)) -> (and (zext x), cst).

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

14 years agoNNT: Make sure stderr for build commands goes to log file, as intended but misdirected.
Daniel Dunbar [Tue, 15 Dec 2009 00:41:47 +0000 (00:41 +0000)]
NNT: Make sure stderr for build commands goes to log file, as intended but misdirected.

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

14 years agoPropagate zest through logical shift.
Evan Cheng [Tue, 15 Dec 2009 00:41:36 +0000 (00:41 +0000)]
Propagate zest through logical shift.

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

14 years agoFormatting.
Eric Christopher [Tue, 15 Dec 2009 00:40:55 +0000 (00:40 +0000)]
Formatting.

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

14 years agoRevert these. They may have been causing 483_xalancbmk to fail:
Bill Wendling [Tue, 15 Dec 2009 00:39:24 +0000 (00:39 +0000)]
Revert these. They may have been causing 483_xalancbmk to fail:

$ svn merge -c -91161 https://llvm.org/svn/llvm-project/llvm/trunk
--- Reverse-merging r91161 into '.':
U    lib/CodeGen/BranchFolding.cpp
U    lib/CodeGen/MachineBasicBlock.cpp
$ svn merge -c -91113 https://llvm.org/svn/llvm-project/llvm/trunk
--- Reverse-merging r91113 into '.':
G    lib/CodeGen/MachineBasicBlock.cpp
$ svn merge -c -91101 https://llvm.org/svn/llvm-project/llvm/trunk
--- Reverse-merging r91101 into '.':
U    include/llvm/CodeGen/MachineBasicBlock.h
G    lib/CodeGen/MachineBasicBlock.cpp
$ svn merge -c -91092 https://llvm.org/svn/llvm-project/llvm/trunk
--- Reverse-merging r91092 into '.':
G    include/llvm/CodeGen/MachineBasicBlock.h
G    lib/CodeGen/MachineBasicBlock.cpp

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

14 years agonand atomic requires opposite operand ordering
Jim Grosbach [Tue, 15 Dec 2009 00:12:35 +0000 (00:12 +0000)]
nand atomic requires opposite operand ordering

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

14 years agoFix integer cast code to handle vector types.
Dan Gohman [Mon, 14 Dec 2009 23:40:38 +0000 (23:40 +0000)]
Fix integer cast code to handle vector types.

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

14 years agoMove Flag and isVoid after the vector types, since bit arithmetic with
Dan Gohman [Mon, 14 Dec 2009 23:36:03 +0000 (23:36 +0000)]
Move Flag and isVoid after the vector types, since bit arithmetic with
those enum values is less common.

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

14 years agoFix these asserts to check the invariant that the code actually
Dan Gohman [Mon, 14 Dec 2009 23:34:36 +0000 (23:34 +0000)]
Fix these asserts to check the invariant that the code actually
depends on.

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

14 years agoUpdate this comment.
Dan Gohman [Mon, 14 Dec 2009 23:13:31 +0000 (23:13 +0000)]
Update this comment.

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

14 years agoFix this to properly clear the FastISel debug location. Thanks to
Dan Gohman [Mon, 14 Dec 2009 23:08:09 +0000 (23:08 +0000)]
Fix this to properly clear the FastISel debug location. Thanks to
Bill for spotting this!

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

14 years agoRearrange rules to add missing dependency and allow parallel makes.
Bob Wilson [Mon, 14 Dec 2009 22:44:22 +0000 (22:44 +0000)]
Rearrange rules to add missing dependency and allow parallel makes.

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

14 years agoAdd encoding bits "let Inst{11-4} = 0b00000000;" to BR_JTr to disambiguate
Johnny Chen [Mon, 14 Dec 2009 21:51:34 +0000 (21:51 +0000)]
Add encoding bits "let Inst{11-4} = 0b00000000;" to BR_JTr to disambiguate
between BR_JTr and STREXD.

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

14 years agoThe CIE says that the LSDA point in the FDE section is an "sdata4". That's fine,
Bill Wendling [Mon, 14 Dec 2009 21:49:44 +0000 (21:49 +0000)]
The CIE says that the LSDA point in the FDE section is an "sdata4". That's fine,
but we need it to actually be 4-bytes in the FDE.

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

14 years agov6 sync insn copy/paste error
Jim Grosbach [Mon, 14 Dec 2009 21:33:32 +0000 (21:33 +0000)]
v6 sync insn copy/paste error

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

14 years agoAdd ARMv6 memory and sync barrier instructions
Jim Grosbach [Mon, 14 Dec 2009 21:24:16 +0000 (21:24 +0000)]
Add ARMv6 memory and sync barrier instructions

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

14 years agoFixed encoding bits typo of ldrexd/strexd.
Johnny Chen [Mon, 14 Dec 2009 21:01:46 +0000 (21:01 +0000)]
Fixed encoding bits typo of ldrexd/strexd.

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

14 years agoThumb2 atomic operations
Jim Grosbach [Mon, 14 Dec 2009 20:14:59 +0000 (20:14 +0000)]
Thumb2 atomic operations

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

14 years agoAdd svn:ignore entries for the Disassembler files.
Dan Gohman [Mon, 14 Dec 2009 19:55:22 +0000 (19:55 +0000)]
Add svn:ignore entries for the Disassembler files.

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

14 years agoMove several function bodies which are rarely inlined out of line.
Dan Gohman [Mon, 14 Dec 2009 19:43:09 +0000 (19:43 +0000)]
Move several function bodies which are rarely inlined out of line.

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

14 years agofix an obvious bug found by clang++ and collapse a redundant if.
Chris Lattner [Mon, 14 Dec 2009 19:34:32 +0000 (19:34 +0000)]
fix an obvious bug found by clang++ and collapse a redundant if.

Here's the diagnostic from clang:

/Volumes/Data/dgregor/Projects/llvm/lib/Target/CppBackend/CPPBackend.cpp:989:23: warning: 'gv' is always NULL in this context
        printConstant(gv);
                      ^
1 diagnostic generated.

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

14 years agoMicro-optimize these functions in the case where they are not inlined.
Dan Gohman [Mon, 14 Dec 2009 19:32:31 +0000 (19:32 +0000)]
Micro-optimize these functions in the case where they are not inlined.

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

14 years agocorrect selection requirements for thumb2 vs. arm versions of the barrier intrinsics
Jim Grosbach [Mon, 14 Dec 2009 19:24:11 +0000 (19:24 +0000)]
correct selection requirements for thumb2 vs. arm versions of the barrier intrinsics

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

14 years agoAdd radar fixed in comment.
Eric Christopher [Mon, 14 Dec 2009 19:07:25 +0000 (19:07 +0000)]
Add radar fixed in comment.

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

14 years agoadd Thumb2 atomic and memory barrier instruction definitions
Jim Grosbach [Mon, 14 Dec 2009 18:56:47 +0000 (18:56 +0000)]
add Thumb2 atomic and memory barrier instruction definitions

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

14 years agowhitespace
Jim Grosbach [Mon, 14 Dec 2009 18:36:32 +0000 (18:36 +0000)]
whitespace

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

14 years agoARM memory barrier instructions are not predicable
Jim Grosbach [Mon, 14 Dec 2009 18:31:20 +0000 (18:31 +0000)]
ARM memory barrier instructions are not predicable

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

14 years agoNNT: Use [e]grep -a when scanning logs, its possibly they will have non-text
Daniel Dunbar [Mon, 14 Dec 2009 17:58:33 +0000 (17:58 +0000)]
NNT: Use [e]grep -a when scanning logs, its possibly they will have non-text
characters in them, in which case the grep will just return 'Binary file
matches' and the whole thing falls over.

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

14 years agoNNT: Always create the -sentdata.txt file.
Daniel Dunbar [Mon, 14 Dec 2009 17:58:27 +0000 (17:58 +0000)]
NNT: Always create the -sentdata.txt file.

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

14 years agoClear the Processed set when it is no longer used, and clear the
Dan Gohman [Mon, 14 Dec 2009 17:35:17 +0000 (17:35 +0000)]
Clear the Processed set when it is no longer used, and clear the
IVUses list in releaseMemory().

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

14 years agoFix a thinko; isNotAlreadyContainedIn had a built-in negative, so the
Dan Gohman [Mon, 14 Dec 2009 17:31:01 +0000 (17:31 +0000)]
Fix a thinko; isNotAlreadyContainedIn had a built-in negative, so the
condition was inverted when the code was converted to contains().

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

14 years agoRemove unnecessary #includes.
Dan Gohman [Mon, 14 Dec 2009 17:19:06 +0000 (17:19 +0000)]
Remove unnecessary #includes.

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

14 years agoMake the IVUses member private.
Dan Gohman [Mon, 14 Dec 2009 17:14:32 +0000 (17:14 +0000)]
Make the IVUses member private.

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

14 years agoInstead of having a ScalarEvolution pointer member in BasedUser, just pass
Dan Gohman [Mon, 14 Dec 2009 17:12:51 +0000 (17:12 +0000)]
Instead of having a ScalarEvolution pointer member in BasedUser, just pass
the ScalarEvolution pointer into the functions which need it.

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

14 years agoDon't bother cleaning up if there's nothing to clean up.
Dan Gohman [Mon, 14 Dec 2009 17:10:44 +0000 (17:10 +0000)]
Don't bother cleaning up if there's nothing to clean up.

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

14 years agoDelete an unused variable.
Dan Gohman [Mon, 14 Dec 2009 17:08:09 +0000 (17:08 +0000)]
Delete an unused variable.

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

14 years agoDrop Loop::isNotAlreadyContainedIn in favor of Loop::contains. The
Dan Gohman [Mon, 14 Dec 2009 17:06:50 +0000 (17:06 +0000)]
Drop Loop::isNotAlreadyContainedIn in favor of Loop::contains. The
former was just exposing a LoopInfoBase implementation detail.

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

14 years agoadd ldrexd/strexd instructions
Jim Grosbach [Mon, 14 Dec 2009 17:02:55 +0000 (17:02 +0000)]
add ldrexd/strexd instructions

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

14 years agoLSR itself doesn't need LoopInfo.
Dan Gohman [Mon, 14 Dec 2009 17:02:34 +0000 (17:02 +0000)]
LSR itself doesn't need LoopInfo.

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

14 years agoLSR itself doesn't need DominatorTree.
Dan Gohman [Mon, 14 Dec 2009 16:57:08 +0000 (16:57 +0000)]
LSR itself doesn't need DominatorTree.

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

14 years agoRemove the code in LSR that manually hoists expansions out of loops;
Dan Gohman [Mon, 14 Dec 2009 16:52:55 +0000 (16:52 +0000)]
Remove the code in LSR that manually hoists expansions out of loops;
SCEVExpander does this automatically.

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

14 years agoMinor code cleanups.
Dan Gohman [Mon, 14 Dec 2009 16:37:29 +0000 (16:37 +0000)]
Minor code cleanups.

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

14 years agoUse DW_AT_specification to point to DIE describing function declaration.
Devang Patel [Mon, 14 Dec 2009 16:18:45 +0000 (16:18 +0000)]
Use DW_AT_specification to point to DIE describing function declaration.

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

14 years agoRemove empty file completely
Shantonu Sen [Mon, 14 Dec 2009 14:15:15 +0000 (14:15 +0000)]
Remove empty file completely

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

14 years agoAdd "generic" fallback.
Torok Edwin [Mon, 14 Dec 2009 12:38:18 +0000 (12:38 +0000)]
Add "generic" fallback.

gcc warned that the function may not have a return value, indeed
for non-intel and non-amd X86 CPUs it is right (VIA, etc.).

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

14 years agoAdded CalcSpillWeights to CMakeLists.
Lang Hames [Mon, 14 Dec 2009 07:43:25 +0000 (07:43 +0000)]
Added CalcSpillWeights to CMakeLists.

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

14 years agoWhitespace changes, comment clarification. No functional changes.
Bill Wendling [Mon, 14 Dec 2009 06:51:19 +0000 (06:51 +0000)]
Whitespace changes, comment clarification. No functional changes.

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

14 years agoMoved spill weight calculation out of SimpleRegisterCoalescing and into its own pass...
Lang Hames [Mon, 14 Dec 2009 06:49:42 +0000 (06:49 +0000)]
Moved spill weight calculation out of SimpleRegisterCoalescing and into its own pass: CalculateSpillWeights.

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

14 years agorevert r91184, because it causes a crash on a .bc file I just
Chris Lattner [Mon, 14 Dec 2009 05:11:02 +0000 (05:11 +0000)]
revert r91184, because it causes a crash on a .bc file I just
sent to Bob.

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

14 years agoatomic binary operations up to 32-bits wide.
Jim Grosbach [Mon, 14 Dec 2009 04:22:04 +0000 (04:22 +0000)]
atomic binary operations up to 32-bits wide.

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

14 years agoAdd a test for the 'init' option property.
Mikhail Glushenkov [Mon, 14 Dec 2009 04:06:38 +0000 (04:06 +0000)]
Add a test for the 'init' option property.

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

14 years agoReinstate r91208 to fix available_externally linkage for globals, with
Jeffrey Yasskin [Sun, 13 Dec 2009 20:30:32 +0000 (20:30 +0000)]
Reinstate r91208 to fix available_externally linkage for globals, with
nlewycky's fix to add -rdynamic so the JIT can look symbols up in Linux builds
of the JITTests binary.

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

14 years agoUsing _MSC_VER there was wrong, better just use the already existing ifdefs for
Torok Edwin [Sun, 13 Dec 2009 08:59:40 +0000 (08:59 +0000)]
Using _MSC_VER there was wrong, better just use the already existing ifdefs for
x86 CPU detection for the X86 getHostCPUName too, and create a simple
getHostCPUName that returns "generic" for all else.

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

14 years agoDon't leave pointers uninitialized in the default constructor. GCC complains
Chandler Carruth [Sun, 13 Dec 2009 07:04:45 +0000 (07:04 +0000)]
Don't leave pointers uninitialized in the default constructor. GCC complains
about the potential use of these uninitialized members under certain conditions.

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

14 years agoFix weird typo which leads to unallocated memory access for nodes with 4 results.
Anton Korobeynikov [Sun, 13 Dec 2009 01:00:59 +0000 (01:00 +0000)]
Fix weird typo which leads to unallocated memory access for nodes with 4 results.

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

14 years agoDo not allow uninitialize access during debug printing
Anton Korobeynikov [Sun, 13 Dec 2009 01:00:32 +0000 (01:00 +0000)]
Do not allow uninitialize access during debug printing

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

14 years agoMore info on this transformation.
Eli Friedman [Sat, 12 Dec 2009 23:23:43 +0000 (23:23 +0000)]
More info on this transformation.

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

14 years agoRemove some stuff that's already implemented. Also, remove the note about
Eli Friedman [Sat, 12 Dec 2009 21:41:48 +0000 (21:41 +0000)]
Remove some stuff that's already implemented.  Also, remove the note about
merging x >u 5 and x <s 20 because it's impossible to implement.

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

14 years agoUpdate install-clang target for clang-cc removal.
Daniel Dunbar [Sat, 12 Dec 2009 21:17:54 +0000 (21:17 +0000)]
Update install-clang target for clang-cc removal.

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

14 years agoDisable r91104 for x86. It causes partial register stall which pessimize code in...
Evan Cheng [Sat, 12 Dec 2009 20:03:14 +0000 (20:03 +0000)]
Disable r91104 for x86. It causes partial register stall which pessimize code in 32-bit.

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

14 years agoImplement variable-width shifts.
Anton Korobeynikov [Sat, 12 Dec 2009 18:55:37 +0000 (18:55 +0000)]
Implement variable-width shifts.
No testcase yet - it seems we're exposing generic codegen bugs.

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

14 years agoAdd comment about potential partial register stall.
Evan Cheng [Sat, 12 Dec 2009 18:55:26 +0000 (18:55 +0000)]
Add comment about potential partial register stall.

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

14 years agoFix an obvious bug. No test case since LEA16r is not being used.
Evan Cheng [Sat, 12 Dec 2009 18:51:56 +0000 (18:51 +0000)]
Fix an obvious bug. No test case since LEA16r is not being used.

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

14 years agoEnable CPU detection when using MS VS 2k8 too.
Torok Edwin [Sat, 12 Dec 2009 12:42:31 +0000 (12:42 +0000)]
Enable CPU detection when using MS VS 2k8 too.
MSVS2k8 doesn't define __i386__, hence all the CPU detection code was disabled.
Enable it by looking for _MSC_VER.

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

14 years agoFix some CHECK lines which were ignored by accident.
Benjamin Kramer [Sat, 12 Dec 2009 09:25:50 +0000 (09:25 +0000)]
Fix some CHECK lines which were ignored by accident.

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

14 years agoRevert r91208. Something on Linux prevents the JIT from looking up a symbol
Jeffrey Yasskin [Sat, 12 Dec 2009 06:18:46 +0000 (06:18 +0000)]
Revert r91208.  Something on Linux prevents the JIT from looking up a symbol
defined in the test, and I don't have time tonight to figure it out.

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

14 years agoFix available_externally linkage for globals. It's probably still not
Jeffrey Yasskin [Sat, 12 Dec 2009 05:58:14 +0000 (05:58 +0000)]
Fix available_externally linkage for globals.  It's probably still not
supported by emitGlobals, but I don't have a test case for that.

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

14 years agoMake it easier to use the llvm_unreachable and DEBUG macros without "using
Jeffrey Yasskin [Sat, 12 Dec 2009 04:08:32 +0000 (04:08 +0000)]
Make it easier to use the llvm_unreachable and DEBUG macros without "using
namespace llvm" by qualifying their implementations with ::llvm::.

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

14 years agoFramework for atomic binary operations. The emitter for the pseudo instructions
Jim Grosbach [Sat, 12 Dec 2009 01:40:06 +0000 (01:40 +0000)]
Framework for atomic binary operations. The emitter for the pseudo instructions
just issues an error for the moment. The front end won't yet generate these
intrinsics for ARM, so this is behind the scenes until complete.

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

14 years agoRevise scalar replacement to be more flexible about handle bitcasts and GEPs.
Bob Wilson [Fri, 11 Dec 2009 23:47:40 +0000 (23:47 +0000)]
Revise scalar replacement to be more flexible about handle bitcasts and GEPs.
While scanning through the uses of an alloca, keep track of the current offset
relative to the start of the alloca, and check memory references to see if
the offset & size correspond to a component within the alloca.  This has the
nice benefit of unifying much of the code from isSafeUseOfAllocation,
isSafeElementUse, and isSafeUseOfBitCastedAllocation.  The code to rewrite
the uses of a promoted alloca, after it is determined to be safe, is
reorganized in the same way.

Also, when rewriting GEP instructions, mark them as "in-bounds" since all the
indices are known to be safe.

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

14 years agoDelete an unnecessary line. The VTSDNode on a SIGN_EXTEND_REG is never
Dan Gohman [Fri, 11 Dec 2009 23:26:08 +0000 (23:26 +0000)]
Delete an unnecessary line. The VTSDNode on a SIGN_EXTEND_REG is never
a vector type.

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

14 years agoLower setcc branchless, if this is profitable.
Anton Korobeynikov [Fri, 11 Dec 2009 23:01:29 +0000 (23:01 +0000)]
Lower setcc branchless, if this is profitable.
Based on the patch by Brian Lucas!

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

14 years agoDon't try to move a MBB into the fall-through position if it's a landing pad or
Bill Wendling [Fri, 11 Dec 2009 21:47:36 +0000 (21:47 +0000)]
Don't try to move a MBB into the fall-through position if it's a landing pad or
branches only to a landing pad. Without this check, the compiler would go into
an infinite loop because the branch to a landing pad is an "abnormal" edge which
wasn't being taken into account.

This is the meat of that fix:

  if (!PrevBB.canFallThrough() && !MBB->BranchesToLandingPad(MBB)) {

The other stuff is simplification of the "branches to a landing pad" code.

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

14 years agoConstruct CompileUnits lazily.
Devang Patel [Fri, 11 Dec 2009 21:37:07 +0000 (21:37 +0000)]
Construct CompileUnits lazily.

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

14 years agoImplement vector widening, splitting, and scalarizing for SIGN_EXTEND_INREG.
Dan Gohman [Fri, 11 Dec 2009 21:31:27 +0000 (21:31 +0000)]
Implement vector widening, splitting, and scalarizing for SIGN_EXTEND_INREG.

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

14 years agomemory barrier instructions by definition have side effects. This prevents the post...
Jim Grosbach [Fri, 11 Dec 2009 20:29:53 +0000 (20:29 +0000)]
memory barrier instructions by definition have side effects. This prevents the post-RA scheduler from moving them around.

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

14 years agoChange this to the correct PR number.
Dan Gohman [Fri, 11 Dec 2009 20:09:21 +0000 (20:09 +0000)]
Change this to the correct PR number.

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

14 years agoMake getUniqueExitBlocks's precondition assert more precise, to
Dan Gohman [Fri, 11 Dec 2009 20:05:23 +0000 (20:05 +0000)]
Make getUniqueExitBlocks's precondition assert more precise, to
avoid spurious failures. This fixes PR5758.

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

14 years agoFix the result type of SELECT nodes lowered from Select instructions with
Dan Gohman [Fri, 11 Dec 2009 19:50:50 +0000 (19:50 +0000)]
Fix the result type of SELECT nodes lowered from Select instructions with
aggregate return values. This fixes PR5754.

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

14 years agoHonour setHasCalls() set from isel.
Anton Korobeynikov [Fri, 11 Dec 2009 19:39:55 +0000 (19:39 +0000)]
Honour setHasCalls() set from isel.
This is used in some weird cases like general dynamic TLS model.
This fixes PR5723

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

14 years agoStore Register Exclusive should leave the source register Inst{3-0} unspecified.
Johnny Chen [Fri, 11 Dec 2009 19:37:26 +0000 (19:37 +0000)]
Store Register Exclusive should leave the source register Inst{3-0} unspecified.

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

14 years agoUpdate properties.
Jim Grosbach [Fri, 11 Dec 2009 18:52:41 +0000 (18:52 +0000)]
Update properties.

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

14 years agoSimplify this class by removing the result cache.
Gabor Greif [Fri, 11 Dec 2009 15:30:07 +0000 (15:30 +0000)]
Simplify this class by removing the result cache.

This change removes the DefaultConstructible
and CopyAssignable constraints on the template
parameter T (the first one).

The second template parameter (R) is defaulted to be
identical to the first and controls the result type.
By specifying it to be (const T&) additionally the
CopyConstructible constraint on T can be removed.

This allows to use StringSwitch e.g. for llvm::Constant
instances.

Regarding the other review feedback regarding performance
because of taking pointers, this class should be completely
optimizable like before, since all methods are inline and
the pointer dereferencing and result value caching should be
possible behind the scenes by the "as-if" rule.

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

14 years agoRevert part of r91101 which was causing an infinite loop in the self-hosting
Bill Wendling [Fri, 11 Dec 2009 10:43:41 +0000 (10:43 +0000)]
Revert part of r91101 which was causing an infinite loop in the self-hosting
build bots.

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