oota-llvm.git
15 years agoAdd 'tell' method to raw_fd_ostream that clients can use to query the current locatio...
Ted Kremenek [Wed, 26 Nov 2008 03:33:13 +0000 (03:33 +0000)]
Add 'tell' method to raw_fd_ostream that clients can use to query the current location in the file the stream is writing to.

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

15 years agoImprove ValueAlreadyLiveAtInst with a cheap and dirty, but effective
Chris Lattner [Wed, 26 Nov 2008 03:20:37 +0000 (03:20 +0000)]
Improve ValueAlreadyLiveAtInst with a cheap and dirty, but effective
heuristic: the value is already live at the new memory operation if
it is used by some other instruction in the memop's block.  This is
cheap and simple to compute (moreso than full liveness).

This improves the new heuristic even more.  For example, it cuts two
out of three new instructions out of 255.vortex:DbmFileInGrpHdr,
which is one of the functions that the heuristic regressed.  This
overall eliminates another 40 instructions from 403.gcc and visibly
reduces register pressure in 255.vortex (though this only actually
ends up saving the 2 instructions from the whole program).

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

15 years ago__fastcall and __stdcall are mingw extensions to gcc for windows. Use the
Nick Lewycky [Wed, 26 Nov 2008 03:17:27 +0000 (03:17 +0000)]
__fastcall and __stdcall are mingw extensions to gcc for windows. Use the
__attribute__ notation which is supported on more platforms.

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

15 years agoStart rewroking a subpiece of the profitability heuristic to be
Chris Lattner [Wed, 26 Nov 2008 03:02:41 +0000 (03:02 +0000)]
Start rewroking a subpiece of the profitability heuristic to be
phrased in terms of liveness instead of as a horrible hack.  :)

In pratice, this doesn't change the generated code for either
255.vortex or 403.gcc, but it could cause minor code changes in
theory.  This is framework for coming changes.

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

15 years agoAdjust indent.
Zhongxing Xu [Wed, 26 Nov 2008 02:57:24 +0000 (02:57 +0000)]
Adjust indent.

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

15 years agoadd a long-overdue AllocaInst::isStaticAlloca method.
Chris Lattner [Wed, 26 Nov 2008 02:54:17 +0000 (02:54 +0000)]
add a long-overdue AllocaInst::isStaticAlloca method.

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

15 years agoAdd test for rdar://6394879.
Bill Wendling [Wed, 26 Nov 2008 02:21:12 +0000 (02:21 +0000)]
Add test for rdar://6394879.

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

15 years agoadd a comment, make save/restore logic more obvious.
Chris Lattner [Wed, 26 Nov 2008 02:11:11 +0000 (02:11 +0000)]
add a comment, make save/restore logic more obvious.

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

15 years agoThis adds in some code (currently disabled unless you pass
Chris Lattner [Wed, 26 Nov 2008 02:00:14 +0000 (02:00 +0000)]
This adds in some code (currently disabled unless you pass
-enable-smarter-addr-folding to llc) that gives CGP a better
cost model for when to sink computations into addressing modes.
The basic observation is that sinking increases register
pressure when part of the addr computation has to be available
for other reasons, such as having a use that is a non-memory
operation.  In cases where it works, it can substantially reduce
register pressure.

This code is currently an overall win on 403.gcc and 255.vortex
(the two things I've been looking at), but there are several
things I want to do before enabling it by default:

1. This isn't doing any caching of results, so it is much slower
   than it could be.  It currently slows down release-asserts llc
   by 1.7% on 176.gcc: 27.12s -> 27.60s.
2. This doesn't think about inline asm memory operands yet.
3. The cost model botches the case when the needed value is live
   across the computation for other reasons.

I'll continue poking at this, and eventually turn it on as llcbeta.

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

15 years agoRevert r60042. IndVarSimplify should check if APFloat is PPCDoubleDouble first before...
Evan Cheng [Wed, 26 Nov 2008 01:11:57 +0000 (01:11 +0000)]
Revert r60042. IndVarSimplify should check if APFloat is PPCDoubleDouble first before trying to convert it to an integer.

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

15 years agoTeach CodeGenPrepare to look through Bitcast instructions when attempting to
Chris Lattner [Wed, 26 Nov 2008 00:26:16 +0000 (00:26 +0000)]
Teach CodeGenPrepare to look through Bitcast instructions when attempting to
optimize addressing modes.  This allows us to optimize things like isel-sink2.ll
into:

movl 4(%esp), %eax
cmpb $0, 4(%eax)
jne LBB1_2 ## F
LBB1_1: ## TB
movl $4, %eax
ret
LBB1_2: ## F
movzbl 7(%eax), %eax
ret

instead of:

_test:
movl 4(%esp), %eax
cmpb $0, 4(%eax)
leal 4(%eax), %eax
jne LBB1_2 ## F
LBB1_1: ## TB
movl $4, %eax
ret
LBB1_2: ## F
movzbl 3(%eax), %eax
ret

This shrinks (e.g.) 403.gcc from 1133510 to 1128345 lines of .s.

Note that the 2008-10-16-SpillerBug.ll testcase is dubious at best, I doubt
it is really testing what it thinks it is.

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

15 years agofix an over-reduced test.
Chris Lattner [Wed, 26 Nov 2008 00:12:08 +0000 (00:12 +0000)]
fix an over-reduced test.

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

15 years agothis doesn't need EH
Chris Lattner [Wed, 26 Nov 2008 00:03:26 +0000 (00:03 +0000)]
this doesn't need EH

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

15 years agoignore tests output
Nuno Lopes [Wed, 26 Nov 2008 00:02:09 +0000 (00:02 +0000)]
ignore tests output

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

15 years agochange AnnotationManager to use 'const char*' instead of std::string. this fixes...
Nuno Lopes [Wed, 26 Nov 2008 00:00:44 +0000 (00:00 +0000)]
change AnnotationManager to use 'const char*' instead of std::string. this fixes the leakage of those strings and avoids the creation of such strings in static cosntructors (should result in a little improvement of startup time)

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

15 years agoCMake: Removed tools/llvmc2 directory hierarchy.
Oscar Fuentes [Tue, 25 Nov 2008 22:19:48 +0000 (22:19 +0000)]
CMake: Removed tools/llvmc2 directory hierarchy.

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

15 years agoCMake: llvmc2 is now known as llvmc.
Oscar Fuentes [Tue, 25 Nov 2008 22:18:49 +0000 (22:18 +0000)]
CMake: llvmc2 is now known as llvmc.

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

15 years agoAdd a man page for llvmc. Really basic for now, will be updated later.
Mikhail Glushenkov [Tue, 25 Nov 2008 21:38:38 +0000 (21:38 +0000)]
Add a man page for llvmc. Really basic for now, will be updated later.

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

15 years agoSince the old llvmc was removed, rename llvmc2 to llvmc.
Mikhail Glushenkov [Tue, 25 Nov 2008 21:38:12 +0000 (21:38 +0000)]
Since the old llvmc was removed, rename llvmc2 to llvmc.

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

15 years agoMake -fsyntax-only, -include and -emit-llvm work for C++ and Objective-C/C++.
Mikhail Glushenkov [Tue, 25 Nov 2008 21:35:20 +0000 (21:35 +0000)]
Make -fsyntax-only, -include and -emit-llvm work for C++ and Objective-C/C++.

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

15 years agodocs: Add author info + fix incorrect code example.
Mikhail Glushenkov [Tue, 25 Nov 2008 21:34:53 +0000 (21:34 +0000)]
docs: Add author info + fix incorrect code example.

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

15 years agoSmall documentation update.
Mikhail Glushenkov [Tue, 25 Nov 2008 21:34:29 +0000 (21:34 +0000)]
Small documentation update.

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

15 years agoDocument the plugin priority feature.
Mikhail Glushenkov [Tue, 25 Nov 2008 21:34:01 +0000 (21:34 +0000)]
Document the plugin priority feature.

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

15 years agoA simplification for checking whether the signs of the operands and sum differ. Thank...
Bill Wendling [Tue, 25 Nov 2008 19:40:17 +0000 (19:40 +0000)]
A simplification for checking whether the signs of the operands and sum differ. Thanks, Duncan.

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

15 years agoconvertToSignExtendedInteger should return opInvalidOp instead of asserting if semati...
Evan Cheng [Tue, 25 Nov 2008 19:00:29 +0000 (19:00 +0000)]
convertToSignExtendedInteger should return opInvalidOp instead of asserting if sematics of float does not allow arithmetics.

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

15 years agoSuppress warnings.
Dan Gohman [Tue, 25 Nov 2008 18:53:54 +0000 (18:53 +0000)]
Suppress warnings.

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

15 years agoThis method got renamed, thanks to Mattias Holm for pointing this out.
Chris Lattner [Tue, 25 Nov 2008 18:34:50 +0000 (18:34 +0000)]
This method got renamed, thanks to Mattias Holm for pointing this out.

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

15 years agoCellSPU:
Scott Michel [Tue, 25 Nov 2008 17:29:43 +0000 (17:29 +0000)]
CellSPU:
(a) Remove conditionally removed code in SelectXAddr. Basically, hope for the
    best that the A-form and D-form address predicates catch everything before
    the code decides to emit a X-form address.
(b) Expand vector store test cases to include the usual suspects.

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

15 years agoadd info about how to run the tests with valgrind
Nuno Lopes [Tue, 25 Nov 2008 15:57:52 +0000 (15:57 +0000)]
add info about how to run the tests with valgrind

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

15 years agoNow with the correct type for the 0.
Bill Wendling [Tue, 25 Nov 2008 08:19:22 +0000 (08:19 +0000)]
Now with the correct type for the 0.

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

15 years agoGet rid of unused variable.
Bill Wendling [Tue, 25 Nov 2008 08:13:20 +0000 (08:13 +0000)]
Get rid of unused variable.

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

15 years agoHacker's Delight says, "Signed integer overflow of addition occurs if and only
Bill Wendling [Tue, 25 Nov 2008 08:12:19 +0000 (08:12 +0000)]
Hacker's Delight says, "Signed integer overflow of addition occurs if and only
if the operands have the same sign and the sum has sign opposite to that of the
operands."

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

15 years agoTeach MatchScaledValue to handle Scales by 1 with MatchAddr (which
Chris Lattner [Tue, 25 Nov 2008 07:25:26 +0000 (07:25 +0000)]
Teach MatchScaledValue to handle Scales by 1 with MatchAddr (which
can recursively match things) and scales by 0 by ignoring them.
This triggers once in 403.gcc, saving 1 (!!!!) instruction in the
whole huge app.

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

15 years agosignificantly refactor all the addressing mode matching logic
Chris Lattner [Tue, 25 Nov 2008 07:09:13 +0000 (07:09 +0000)]
significantly refactor all the addressing mode matching logic
into a new AddressingModeMatcher class.  This makes it easier
to reason about and reduces passing around of stuff, but has
no functionality change.

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

15 years agorefactor all the constantexpr/instruction handling code out into a
Chris Lattner [Tue, 25 Nov 2008 05:15:49 +0000 (05:15 +0000)]
refactor all the constantexpr/instruction handling code out into a
new FindMaximalLegalAddressingModeForOperation helper method.

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

15 years agoanother minor tweak
Chris Lattner [Tue, 25 Nov 2008 04:47:41 +0000 (04:47 +0000)]
another minor tweak

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

15 years agominor cleanups no functionality change.
Chris Lattner [Tue, 25 Nov 2008 04:42:10 +0000 (04:42 +0000)]
minor cleanups no functionality change.

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

15 years agoCMake: Documented two cmake variables.
Oscar Fuentes [Tue, 25 Nov 2008 04:23:36 +0000 (04:23 +0000)]
CMake: Documented two cmake variables.

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

15 years agoCellSPU: Relax constraints on when to generate a X-form address, evidently
Scott Michel [Tue, 25 Nov 2008 04:03:47 +0000 (04:03 +0000)]
CellSPU: Relax constraints on when to generate a X-form address, evidently
they were too tight according to bug 3126.

Fix bug 3126.

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

15 years agoCellSPU: test should use shlqby, not shlqbyi
Scott Michel [Tue, 25 Nov 2008 01:30:37 +0000 (01:30 +0000)]
CellSPU: test should use shlqby, not shlqbyi

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

15 years agoXFAIL this test. A recent CellSPU check-in broke it.
Bill Wendling [Tue, 25 Nov 2008 00:56:34 +0000 (00:56 +0000)]
XFAIL this test. A recent CellSPU check-in broke it.

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

15 years agoInitial support for anti-dependence breaking. Currently this code does not
Dan Gohman [Tue, 25 Nov 2008 00:52:40 +0000 (00:52 +0000)]
Initial support for anti-dependence breaking. Currently this code does not
introduce any new spilling; it just uses unused registers.

Refactor the SUnit topological sort code out of the RRList scheduler and
make use of it to help with the post-pass scheduler.

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

15 years agoCellSPU: Fix mnemonic typo in pattern; "shlqbyi" -> "shlqby".
Scott Michel [Tue, 25 Nov 2008 00:23:16 +0000 (00:23 +0000)]
CellSPU: Fix mnemonic typo in pattern; "shlqbyi" -> "shlqby".

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

15 years agoTestcase for constant CFStrings.
Bill Wendling [Mon, 24 Nov 2008 23:28:09 +0000 (23:28 +0000)]
Testcase for constant CFStrings.

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

15 years agorearrange and tidy some code, no functionality change.
Chris Lattner [Mon, 24 Nov 2008 22:44:16 +0000 (22:44 +0000)]
rearrange and tidy some code, no functionality change.

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

15 years agominor cleanups to debug code, no functionality change.
Chris Lattner [Mon, 24 Nov 2008 22:40:05 +0000 (22:40 +0000)]
minor cleanups to debug code, no functionality change.

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

15 years agoreenable test
Chris Lattner [Mon, 24 Nov 2008 21:27:20 +0000 (21:27 +0000)]
reenable test

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

15 years agoreenable the right part of the code.
Chris Lattner [Mon, 24 Nov 2008 21:26:21 +0000 (21:26 +0000)]
reenable the right part of the code.

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

15 years agoTemporarily XFAIL this test. r59976 and r59972 broke it.
Bill Wendling [Mon, 24 Nov 2008 20:43:33 +0000 (20:43 +0000)]
Temporarily XFAIL this test. r59976 and r59972 broke it.

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

15 years agoMove the scheduler constructor functions to SchedulerRegistry.h, to
Dan Gohman [Mon, 24 Nov 2008 19:53:21 +0000 (19:53 +0000)]
Move the scheduler constructor functions to SchedulerRegistry.h, to
simplify header dependencies for front-ends that just want to choose
a scheduler and don't need all the scheduling machinery declarations.

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

15 years agoFix an unused-parameter warning.
Dan Gohman [Mon, 24 Nov 2008 19:51:59 +0000 (19:51 +0000)]
Fix an unused-parameter warning.

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

15 years agorevert an accidental commit, this fixes the regression on test/CodeGen/X86/isel-sink.ll
Chris Lattner [Mon, 24 Nov 2008 19:40:34 +0000 (19:40 +0000)]
revert an accidental commit, this fixes the regression on test/CodeGen/X86/isel-sink.ll

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

15 years agoFix 3113: If we have a dead cyclic PHI, replace the whole thing
Chris Lattner [Mon, 24 Nov 2008 19:25:36 +0000 (19:25 +0000)]
Fix 3113: If we have a dead cyclic PHI, replace the whole thing
with an undef.

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

15 years ago- Make lowering of "add with overflow" customizable by back-ends.
Bill Wendling [Mon, 24 Nov 2008 19:21:46 +0000 (19:21 +0000)]
- Make lowering of "add with overflow" customizable by back-ends.
- Mark "add with overflow" as having a custom lowering for X86. Give it a null
  lowering representation for now.

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

15 years agoCellSPU:
Scott Michel [Mon, 24 Nov 2008 18:20:46 +0000 (18:20 +0000)]
CellSPU:
(a) Slight rethink on i64 zero/sign/any extend code - use a shuffle to
    directly zero-extend i32 to i64, but use rotates and shifts for
    sign extension. Also ensure unified register consistency.
(b) Add new test harness for i64 operations: i64ops.ll

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

15 years agoCheck in the rest of this change. The isAntiDep flag needs to be passed
Dan Gohman [Mon, 24 Nov 2008 17:33:52 +0000 (17:33 +0000)]
Check in the rest of this change. The isAntiDep flag needs to be passed
to removePred because an SUnit can both data-depend and anti-depend
on the same SUnit.

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

15 years agoPass the isAntiDep argument.
Dan Gohman [Mon, 24 Nov 2008 17:24:27 +0000 (17:24 +0000)]
Pass the isAntiDep argument.

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

15 years agoRun post-RA scheduling after branch folding, as it tends to
Dan Gohman [Mon, 24 Nov 2008 17:22:52 +0000 (17:22 +0000)]
Run post-RA scheduling after branch folding, as it tends to
obscure tail-merging opportunities.

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

15 years agoFix a few HTML tidiness issues.
Dan Gohman [Mon, 24 Nov 2008 17:18:39 +0000 (17:18 +0000)]
Fix a few HTML tidiness issues.

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

15 years agoCellSPU:
Scott Michel [Mon, 24 Nov 2008 17:11:17 +0000 (17:11 +0000)]
CellSPU:
(a) Improve the extract element code: there's no need to do gymnastics with
    rotates into the preferred slot if a shuffle will do the same thing.
(b) Rename a couple of SPUISD pseudo-instructions for readability and better
    semantic correspondence.
(c) Fix i64 sign/any/zero extension lowering.

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

15 years agoDelete some spurious characters.
Dan Gohman [Mon, 24 Nov 2008 16:45:15 +0000 (16:45 +0000)]
Delete some spurious characters.

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

15 years agoFix some "</p>"s.
Dan Gohman [Mon, 24 Nov 2008 16:35:31 +0000 (16:35 +0000)]
Fix some "</p>"s.

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

15 years agoSome documentation for LegalizeTypes.
Dan Gohman [Mon, 24 Nov 2008 16:27:17 +0000 (16:27 +0000)]
Some documentation for LegalizeTypes.

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

15 years agoMinor fix debug for register allocation debug output.
Matthijs Kooijman [Mon, 24 Nov 2008 16:01:21 +0000 (16:01 +0000)]
Minor fix debug for register allocation debug output.

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

15 years agoIf the type legalizer actually legalized anything
Duncan Sands [Mon, 24 Nov 2008 14:53:14 +0000 (14:53 +0000)]
If the type legalizer actually legalized anything
(this doesn't happen that often, since most code
does not use illegal types) then follow it by a
DAG combiner run that is allowed to generate
illegal operations but not illegal types.  I didn't
modify the target combiner code to distinguish like
this between illegal operations and illegal types,
so it will not produce illegal operations as well
as not producing illegal types.

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

15 years agoFix comments.
Matthijs Kooijman [Mon, 24 Nov 2008 11:44:00 +0000 (11:44 +0000)]
Fix comments.

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

15 years agoNULL, unique pointers from malloc(0), and freed pointers are legal values for
Torok Edwin [Mon, 24 Nov 2008 08:02:24 +0000 (08:02 +0000)]
NULL, unique pointers from malloc(0), and freed pointers are legal values for
noalias attribute parameters/return values.

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

15 years agoMove target independent td files from lib/Target/ to include/llvm/Target so they...
Evan Cheng [Mon, 24 Nov 2008 07:34:46 +0000 (07:34 +0000)]
Move target independent td files from lib/Target/ to include/llvm/Target so they can be distributed along with the header files.

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

15 years agoEliminate some unused variable compile time warnings.
Evan Cheng [Mon, 24 Nov 2008 07:09:49 +0000 (07:09 +0000)]
Eliminate some unused variable compile time warnings.

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

15 years agoTest add-with-overflow with fast ISel.
Bill Wendling [Mon, 24 Nov 2008 05:23:38 +0000 (05:23 +0000)]
Test add-with-overflow with fast ISel.

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

15 years agoSeriously strengthen the guarantee offered by noalias on a function's return
Nick Lewycky [Mon, 24 Nov 2008 05:00:44 +0000 (05:00 +0000)]
Seriously strengthen the guarantee offered by noalias on a function's return
value. It must now be as if the pointer were allocated and has not escaped to
the caller. Thanks to Dan Gohman for pointing out the error in the original
and helping devise this definition.

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

15 years agoExtend the 'noalias' attribute to function return values. This is intended to
Nick Lewycky [Mon, 24 Nov 2008 03:41:24 +0000 (03:41 +0000)]
Extend the 'noalias' attribute to function return values. This is intended to
indicate functions that allocate, such as operator new, or list::insert. The
actual definition is slightly less strict (for now).

No changes to the bitcode reader/writer, asm printer or verifier were needed.

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

15 years agoAdded missing description for -disable-mmx option.
Mon P Wang [Mon, 24 Nov 2008 02:10:43 +0000 (02:10 +0000)]
Added missing description for -disable-mmx option.

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

15 years agoAdd support for llvm.uadd.with.overflow.
Bill Wendling [Mon, 24 Nov 2008 01:38:29 +0000 (01:38 +0000)]
Add support for llvm.uadd.with.overflow.

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

15 years agoRoll back rev 59890, since Chris says this can never happen.
Scott Michel [Sun, 23 Nov 2008 19:22:48 +0000 (19:22 +0000)]
Roll back rev 59890, since Chris says this can never happen.

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

15 years agoRename SetCCResultContents to BooleanContents. In
Duncan Sands [Sun, 23 Nov 2008 15:47:28 +0000 (15:47 +0000)]
Rename SetCCResultContents to BooleanContents.  In
practice these booleans are mostly produced by SetCC,
however the concept is more general.

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

15 years agoMake JIT::runFunction handle functions with non-C calling conventions.
Chris Lattner [Sun, 23 Nov 2008 08:00:11 +0000 (08:00 +0000)]
Make JIT::runFunction handle functions with non-C calling conventions.

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

15 years agoAdded -disable-mmx using a patch from Preston Gurd.
Mon P Wang [Sun, 23 Nov 2008 04:37:22 +0000 (04:37 +0000)]
Added -disable-mmx using a patch from Preston Gurd.

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

15 years agoAdded check to avoid generating extract subvector beyond the end of the vector when...
Mon P Wang [Sun, 23 Nov 2008 04:35:05 +0000 (04:35 +0000)]
Added check to avoid generating extract subvector beyond the end of the vector when normalizing vector shuffles.

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

15 years agoFixed named anchor for llvm.stackprotector intrinsic.
Misha Brukman [Sat, 22 Nov 2008 23:55:29 +0000 (23:55 +0000)]
Fixed named anchor for llvm.stackprotector intrinsic.

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

15 years agoCellSPU: Fix bug 3056. Varadic extract_element was not implemented (nor was it
Scott Michel [Sat, 22 Nov 2008 23:50:42 +0000 (23:50 +0000)]
CellSPU: Fix bug 3056. Varadic extract_element was not implemented (nor was it
ever conceived to occur).

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

15 years agoCheck for NULL before traversing the isa<> type hierarchy checking with a
Scott Michel [Sat, 22 Nov 2008 23:49:26 +0000 (23:49 +0000)]
Check for NULL before traversing the isa<> type hierarchy checking with a
NULL-based reference.

Note: Encountered this a few times on Tiger + gcc 4.0.1. Might just be a
platform-specific compiler issue, but it's good defensive programming in any
case.

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

15 years agoDescribe how the JIT maps fields to MachineOperands, patch by
Chris Lattner [Sat, 22 Nov 2008 19:10:48 +0000 (19:10 +0000)]
Describe how the JIT maps fields to MachineOperands, patch by
JP Bonn!

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

15 years agoMake a convenient helper for printing offsets.
Anton Korobeynikov [Sat, 22 Nov 2008 16:15:34 +0000 (16:15 +0000)]
Make a convenient helper for printing offsets.

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

16 years agoCleanup of the [SU]ADDO type legalization code. Patch by Duncan!
Bill Wendling [Sat, 22 Nov 2008 07:24:01 +0000 (07:24 +0000)]
Cleanup of the [SU]ADDO type legalization code. Patch by Duncan!

"It simplifies the type legalization part a bit, and produces better code by
teaching SelectionDAG about the extra bits in an i8 SADDO/UADDO node.  In
essence, I spontaneously decided that on x86 this i8 boolean result would be
either 0 or 1, and on other platforms 0/1 or 0/-1, depending on whether the
platform likes it's boolean zero extended or sign extended."

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

16 years ago- Move conversion of [SU]ADDO from DAG combiner into legalizer.
Bill Wendling [Sat, 22 Nov 2008 00:22:52 +0000 (00:22 +0000)]
- Move conversion of [SU]ADDO from DAG combiner into legalizer.
- Add "promote integer type" stuff to the legalizer for these nodes.

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

16 years agoFix build failure.
Devang Patel [Fri, 21 Nov 2008 21:00:20 +0000 (21:00 +0000)]
Fix build failure.

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

16 years agoSilence unused variable warnings.
Devang Patel [Fri, 21 Nov 2008 20:00:59 +0000 (20:00 +0000)]
Silence unused variable warnings.

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

16 years agoDocument TEST=dbgopt
Devang Patel [Fri, 21 Nov 2008 19:35:57 +0000 (19:35 +0000)]
Document TEST=dbgopt

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

16 years agoCorrectly set the isCtrl flag for chain dependencies.
Dan Gohman [Fri, 21 Nov 2008 19:17:25 +0000 (19:17 +0000)]
Correctly set the isCtrl flag for chain dependencies.

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

16 years agoUpdate comments.
Dan Gohman [Fri, 21 Nov 2008 19:16:58 +0000 (19:16 +0000)]
Update comments.

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

16 years agoUpdate comments.
Dan Gohman [Fri, 21 Nov 2008 19:10:41 +0000 (19:10 +0000)]
Update comments.

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

16 years agoreapply Sanjiv's patch to genericize memcpy/memset/memmove to take an
Chris Lattner [Fri, 21 Nov 2008 16:42:48 +0000 (16:42 +0000)]
reapply Sanjiv's patch to genericize memcpy/memset/memmove to take an
arbitrary integer width for the count.

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

16 years agoRevert r59802. It was breaking the build of llvm-gcc:
Bill Wendling [Fri, 21 Nov 2008 09:09:41 +0000 (09:09 +0000)]
Revert r59802. It was breaking the build of llvm-gcc:

g++ -m32 -c -g -DIN_GCC -W -Wall -Wwrite-strings -Wmissing-format-attribute -fno-common -mdynamic-no-pic -DHAVE_CONFIG_H -Wno-unused -DTARGET_NAME=\"i386-apple-darwin9.5.0\" -I. -I. -I../../llvm-gcc.src/gcc -I../../llvm-gcc.src/gcc/. -I../../llvm-gcc.src/gcc/../include -I./../intl -I../../llvm-gcc.src/gcc/../libcpp/include  -I../../llvm-gcc.src/gcc/../libdecnumber -I../libdecnumber -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/include -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/include -DENABLE_LLVM -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/../llvm.src/include  -D_DEBUG  -D_GNU_SOURCE -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS   -I. -I. -I../../llvm-gcc.src/gcc -I../../llvm-gcc.src/gcc/. -I../../llvm-gcc.src/gcc/../include -I./../intl -I../../llvm-gcc.src/gcc/../libcpp/include  -I../../llvm-gcc.src/gcc/../libdecnumber -I../libdecnumber -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/include -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/include ../../llvm-gcc.src/gcc/llvm-types.cpp -o llvm-types.o
../../llvm-gcc.src/gcc/llvm-convert.cpp: In member function 'void TreeToLLVM::EmitMemCpy(llvm::Value*, llvm::Value*, llvm::Value*, unsigned int)':
../../llvm-gcc.src/gcc/llvm-convert.cpp:1496: error: 'memcpy_i32' is not a member of 'llvm::Intrinsic'
../../llvm-gcc.src/gcc/llvm-convert.cpp:1496: error: 'memcpy_i64' is not a member of 'llvm::Intrinsic'
../../llvm-gcc.src/gcc/llvm-convert.cpp: In member function 'void TreeToLLVM::EmitMemMove(llvm::Value*, llvm::Value*, llvm::Value*, unsigned int)':
../../llvm-gcc.src/gcc/llvm-convert.cpp:1512: error: 'memmove_i32' is not a member of 'llvm::Intrinsic'
../../llvm-gcc.src/gcc/llvm-convert.cpp:1512: error: 'memmove_i64' is not a member of 'llvm::Intrinsic'
../../llvm-gcc.src/gcc/llvm-convert.cpp: In member function 'void TreeToLLVM::EmitMemSet(llvm::Value*, llvm::Value*, llvm::Value*, unsigned int)':
../../llvm-gcc.src/gcc/llvm-convert.cpp:1528: error: 'memset_i32' is not a member of 'llvm::Intrinsic'
../../llvm-gcc.src/gcc/llvm-convert.cpp:1528: error: 'memset_i64' is not a member of 'llvm::Intrinsic'
make[3]: *** [llvm-convert.o] Error 1
make[3]: *** Waiting for unfinished jobs....
rm fsf-funding.pod gcov.pod gfdl.pod cpp.pod gpl.pod gcc.pod
make[2]: *** [all-stage1-gcc] Error 2
make[1]: *** [stage1-bubble] Error 2
make: *** [all] Error 2

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

16 years agoMake mem[cpy,move,set] intrinsics overloaded.
Sanjiv Gupta [Fri, 21 Nov 2008 07:49:09 +0000 (07:49 +0000)]
Make mem[cpy,move,set] intrinsics overloaded.

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

16 years agoDefault to converting UADDO to the generic form that SADDO is converted to.
Bill Wendling [Fri, 21 Nov 2008 07:44:30 +0000 (07:44 +0000)]
Default to converting UADDO to the generic form that SADDO is converted to.

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

16 years agoOptimize (x/y)*y into x-(x%y) in general. Div and rem are about the same, and
Nick Lewycky [Fri, 21 Nov 2008 07:33:58 +0000 (07:33 +0000)]
Optimize (x/y)*y into x-(x%y) in general. Div and rem are about the same, and
a subtract is cheaper than a multiply. This generalizes an existing transform.

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

16 years agoLLVM does have a fortran FE!
Duraid Madina [Fri, 21 Nov 2008 06:26:56 +0000 (06:26 +0000)]
LLVM does have a fortran FE!

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

16 years agoClean up normalization of shuffles
Mon P Wang [Fri, 21 Nov 2008 04:25:21 +0000 (04:25 +0000)]
Clean up normalization of shuffles

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

16 years agoCellSPU:
Scott Michel [Fri, 21 Nov 2008 02:56:16 +0000 (02:56 +0000)]
CellSPU:
(a) Fix bgs 3052, 3057
(b) Incorporate Duncan's suggestions re: i1 promotion
(c) Indentation updates.

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