oota-llvm.git
16 years agoadd missing #include
Chris Lattner [Thu, 22 Nov 2007 23:19:05 +0000 (23:19 +0000)]
add missing #include

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

16 years agoDon't crash on bogus llvm.noinline. This is first part of PR1817 (preventing reduction)
Anton Korobeynikov [Thu, 22 Nov 2007 22:30:10 +0000 (22:30 +0000)]
Don't crash on bogus llvm.noinline. This is first part of PR1817 (preventing reduction)

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

16 years agoTurn invokes of nounwind functions into ordinary calls.
Duncan Sands [Thu, 22 Nov 2007 22:24:59 +0000 (22:24 +0000)]
Turn invokes of nounwind functions into ordinary calls.

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

16 years agoTeach alias analysis about readnone/readonly functions.
Duncan Sands [Thu, 22 Nov 2007 21:43:27 +0000 (21:43 +0000)]
Teach alias analysis about readnone/readonly functions.
Based on a patch by Török Edwin.

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

16 years agoReadonly/readnone functions are allowed to throw
Duncan Sands [Thu, 22 Nov 2007 21:40:06 +0000 (21:40 +0000)]
Readonly/readnone functions are allowed to throw
exceptions, so don't turn invokes of them into
calls.

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

16 years agoresolve the last fixme's in the new tblgen parser.
Chris Lattner [Thu, 22 Nov 2007 21:06:59 +0000 (21:06 +0000)]
resolve the last fixme's in the new tblgen parser.

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

16 years agochange the Init print methods to return strings, and implement
Chris Lattner [Thu, 22 Nov 2007 21:05:25 +0000 (21:05 +0000)]
change the Init print methods to return strings, and implement
print in terms of that.

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

16 years agoeliminate a bunch of print methods that are duplicate with the getAsString() method.
Chris Lattner [Thu, 22 Nov 2007 20:51:34 +0000 (20:51 +0000)]
eliminate a bunch of print methods that are duplicate with the getAsString() method.

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

16 years agoRewrite the tblgen parser in a recursive descent style, eliminating the bison parser.
Chris Lattner [Thu, 22 Nov 2007 20:49:04 +0000 (20:49 +0000)]
Rewrite the tblgen parser in a recursive descent style, eliminating the bison parser.

This makes the parser much easier to understand, eliminates a ton of global variables,
and gives tblgen nice caret diagnostics.  It is also faster, but tblgen probably doesn't
care about performance.

There are a couple of FIXMEs which I will take care of next.

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

16 years agoRename the 'const' parameter attribute to 'readnone',
Duncan Sands [Thu, 22 Nov 2007 20:23:04 +0000 (20:23 +0000)]
Rename the 'const' parameter attribute to 'readnone',
and the 'pure' parameter attribute to 'readonly'.
Names suggested by DannyB.

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

16 years agoInstead of calculating constant factors, calculate the number of trailing
Nick Lewycky [Thu, 22 Nov 2007 07:59:40 +0000 (07:59 +0000)]
Instead of calculating constant factors, calculate the number of trailing
bits. Patch from Wojciech Matyjewicz.

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

16 years agoCreate nodes for inline asm so that we don't crash looking for the node later.
Nick Lewycky [Thu, 22 Nov 2007 03:07:37 +0000 (03:07 +0000)]
Create nodes for inline asm so that we don't crash looking for the node later.

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

16 years agoSwitching back to strtoll. Including config.h. On VStudio builds, this overrides...
Chuck Rose III [Wed, 21 Nov 2007 19:36:25 +0000 (19:36 +0000)]
Switching back to strtoll. Including config.h.  On VStudio builds, this overrides strtoll.

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

16 years agoFix a bug in which node A is replaced by node B, but later
Duncan Sands [Wed, 21 Nov 2007 16:43:19 +0000 (16:43 +0000)]
Fix a bug in which node A is replaced by node B, but later
node A gets back into the DAG again because it was hiding in
one of the node maps: make sure that node replacement happens
in those maps too.

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

16 years agotypo
Nick Lewycky [Wed, 21 Nov 2007 05:21:54 +0000 (05:21 +0000)]
typo

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

16 years agoFix compiler warning.
Dale Johannesen [Wed, 21 Nov 2007 00:45:00 +0000 (00:45 +0000)]
Fix compiler warning.

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

16 years agoThis change does a couple of things. First it gets the Visual Studio builds working.
Chuck Rose III [Wed, 21 Nov 2007 00:37:56 +0000 (00:37 +0000)]
This change does a couple of things.  First it gets the Visual Studio builds working.
I added the lexing files to the VStudio projects and removed the .l files from the
VStudio projects.  There was a problem with use of strtoll in TGLexer.cpp and Chris
suggested switching to strtol, so that's included here.

Additionally, this checkin adds minimal x64 builds to the VStudio builds.  Build issues
related to x64 in the windows specific files for DynamicLibrary.inc and Singals.inc
are worked around, but not ultimately solved.  Binaries used to be stored in

...\win32\{Debug|Release}

but are now kept in

...\win32\bin\{win32|x64}\{Debug|Release}

intermediate files will continue to be stored in the individual project directories under
win32.

Some names will likely change in the future to reflect that the vstudio projects
are no longer 32-bit only, but I wanted to get things up and running today so kept away
from bigger restructuring.

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

16 years agoFile missing from previous patch.
Dale Johannesen [Tue, 20 Nov 2007 23:25:17 +0000 (23:25 +0000)]
File missing from previous patch.

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

16 years agoFix .eh table linkage issues on Darwin. Some EH support
Dale Johannesen [Tue, 20 Nov 2007 23:24:42 +0000 (23:24 +0000)]
Fix .eh table linkage issues on Darwin.  Some EH support
for Darwin PPC, but it's not fully working yet.

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

16 years agoAdd the ability to convert a tblgen type to a string.
Chris Lattner [Tue, 20 Nov 2007 22:25:16 +0000 (22:25 +0000)]
Add the ability to convert a tblgen type to a string.

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

16 years agoIn order for parameter attribute uniquing to make
Duncan Sands [Tue, 20 Nov 2007 14:09:29 +0000 (14:09 +0000)]
In order for parameter attribute uniquing to make
any sense it is important that ParamAttr::None gets
treated the same as not supplying an attribute at
all.  Rather than stripping ParamAttr::None out of
the list of attributes, assert if ParamAttr::None
is seen.  Fix up the bitcode reader which liked to
insert ParamAttr::None all over the place.  Patch
based on one by Török Edwin.

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

16 years agoSmall cleanup. Use APInt::getHighBitsSet method instead of shift left.
Nick Lewycky [Tue, 20 Nov 2007 08:44:50 +0000 (08:44 +0000)]
Small cleanup. Use APInt::getHighBitsSet method instead of shift left.
"setcc" -> "icmp op" in comments. No functionality change.

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

16 years agoBe more careful when transforming | to +. Patch from Wojciech Matyjewicz.
Nick Lewycky [Tue, 20 Nov 2007 08:24:44 +0000 (08:24 +0000)]
Be more careful when transforming | to +. Patch from Wojciech Matyjewicz.

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

16 years agoTestcase for PR1811
Chris Lattner [Mon, 19 Nov 2007 21:43:22 +0000 (21:43 +0000)]
Testcase for PR1811

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

16 years agoExpandUnalignedLoad doesn't handle vectors right at all apparently.
Chris Lattner [Mon, 19 Nov 2007 21:38:03 +0000 (21:38 +0000)]
ExpandUnalignedLoad doesn't handle vectors right at all apparently.
Fix a couple of problems:
1. Don't assume the VT-1 is a VT that is half the size.
2. Treat vectors of FP in the vector path, not the FP path.

This has a couple of remaining problems before it will work with
the code in PR1811: the code below this change assumes that it can
use extload/shift/or to construct the result, which isn't right for
vectors.

This also doesn't handle vectors of 1 or vectors that aren't pow-2.

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

16 years agoImplement vector expand support for shuffle_vector. This fixes PR1811.
Chris Lattner [Mon, 19 Nov 2007 21:16:54 +0000 (21:16 +0000)]
Implement vector expand support for shuffle_vector.  This fixes PR1811.

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

16 years agoRemove meaningless qualifiers from return types, avoiding compiler warnings.
Dan Gohman [Mon, 19 Nov 2007 20:46:23 +0000 (20:46 +0000)]
Remove meaningless qualifiers from return types, avoiding compiler warnings.

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

16 years agoImplement splitting of UNDEF nodes. This is the first step towards fixing PR1811
Chris Lattner [Mon, 19 Nov 2007 20:21:32 +0000 (20:21 +0000)]
Implement splitting of UNDEF nodes. This is the first step towards fixing PR1811

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

16 years agoTeach me to do stuff late at night.
Owen Anderson [Mon, 19 Nov 2007 16:10:59 +0000 (16:10 +0000)]
Teach me to do stuff late at night.

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

16 years agoFix a typo in a comment.
Dan Gohman [Mon, 19 Nov 2007 15:36:19 +0000 (15:36 +0000)]
Fix a typo in a comment.

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

16 years agoAdd explicit keywords.
Dan Gohman [Mon, 19 Nov 2007 15:30:20 +0000 (15:30 +0000)]
Add explicit keywords.

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

16 years agoAdd support in SplitVectorOp for remainder operators.
Dan Gohman [Mon, 19 Nov 2007 15:15:03 +0000 (15:15 +0000)]
Add support in SplitVectorOp for remainder operators.

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

16 years agoFix a factually incorrect statement pointed out by Max Hailperin.
Owen Anderson [Mon, 19 Nov 2007 07:44:43 +0000 (07:44 +0000)]
Fix a factually incorrect statement pointed out by Max Hailperin.

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

16 years agoRecord the start of the current token, for use in error reporting.
Chris Lattner [Mon, 19 Nov 2007 07:43:52 +0000 (07:43 +0000)]
Record the start of the current token, for use in error reporting.

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

16 years agoAdd carat diagnostics to tblgen lexer errors.
Chris Lattner [Mon, 19 Nov 2007 07:38:58 +0000 (07:38 +0000)]
Add carat diagnostics to tblgen lexer errors.

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

16 years agoFix the Linker testcase regressions, by making MemoryBuffer::getFileOrSTDIN return
Chris Lattner [Sun, 18 Nov 2007 18:52:28 +0000 (18:52 +0000)]
Fix the Linker testcase regressions, by making MemoryBuffer::getFileOrSTDIN return
a valid but empty buffer if stdin is empty.

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

16 years agoautoupgrade files that use callfoo as call foo.
Chris Lattner [Sun, 18 Nov 2007 18:43:24 +0000 (18:43 +0000)]
autoupgrade files that use callfoo as call foo.

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

16 years agoprint a call to a fastcc function as:
Chris Lattner [Sun, 18 Nov 2007 18:32:16 +0000 (18:32 +0000)]
print a call to a fastcc function as:
call x86_fastcallcc void @func( i32* %X, i64 0 )
not:
callx86_fastcallcc  void @func( i32* %X, i64 0 )

This fixes Codegen/X86/fast-cc-merge-stack-adj.ll

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

16 years agofix bogus test that the more strict lexer is finding.
Chris Lattner [Sun, 18 Nov 2007 18:26:45 +0000 (18:26 +0000)]
fix bogus test that the more strict lexer is finding.

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

16 years agoBugfix, this fixes CodeGen/X86/ldzero.ll and CodeGen/X86/2007-10-16-fp80_select.ll
Chris Lattner [Sun, 18 Nov 2007 18:25:18 +0000 (18:25 +0000)]
Bugfix, this fixes CodeGen/X86/ldzero.ll and CodeGen/X86/2007-10-16-fp80_select.ll

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

16 years agoReplace the original flex lexer with a hand writen one. This
Chris Lattner [Sun, 18 Nov 2007 08:46:26 +0000 (08:46 +0000)]
Replace the original flex lexer with a hand writen one.  This
drops a dependency on flex and lets us make future progress more
easily.  Yay for 2 fewer .cvs files to make silly conflicts with.

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

16 years agominor cleanups
Chris Lattner [Sun, 18 Nov 2007 05:48:46 +0000 (05:48 +0000)]
minor cleanups

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

16 years agoensure header is self contained.
Chris Lattner [Sun, 18 Nov 2007 05:25:45 +0000 (05:25 +0000)]
ensure header is self contained.

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

16 years agoreimplement the tblgen lexer with a simple hand-written lexer. This eliminates
Chris Lattner [Sun, 18 Nov 2007 02:57:27 +0000 (02:57 +0000)]
reimplement the tblgen lexer with a simple hand-written lexer.  This eliminates
one dependency on flex and gets rid of two ".cvs" files.

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

16 years agoAdd support for vectors to int <-> float casts.
Nate Begeman [Sat, 17 Nov 2007 03:58:34 +0000 (03:58 +0000)]
Add support for vectors to int <-> float casts.

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

16 years agoReverted patch 44199:
Ted Kremenek [Sat, 17 Nov 2007 03:34:33 +0000 (03:34 +0000)]
Reverted patch 44199:

http://llvm.org/viewvc/llvm-project?rev=44199&view=rev

This patch completely broke serialization due to an invariant I assumed but
did not hold. The assumed invariant was that all pointer IDs emitted by a call
to BatchEmitOwnedPtrs would be consecutive. This is only the case if there has
been no forward references to an owned pointer (and hence already registered
with the Serializer object).

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

16 years agoRemove indeterminism from a loop. We think this will
Dale Johannesen [Sat, 17 Nov 2007 02:48:01 +0000 (02:48 +0000)]
Remove indeterminism from a loop.  We think this will
fix an occasional nonrepeatable bootstrap failure we've
been seeing on Darwin.

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

16 years agoFix denormal check in float->APInt conversion.
Dale Johannesen [Sat, 17 Nov 2007 01:02:27 +0000 (01:02 +0000)]
Fix denormal check in float->APInt conversion.
PR 1804.

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

16 years agoChanged implementation of Serialize::EmitDiffPtrID and
Ted Kremenek [Sat, 17 Nov 2007 00:45:37 +0000 (00:45 +0000)]
Changed implementation of Serialize::EmitDiffPtrID and
Deserialize::ReadDiffPtrID to read and emit bools instead of unsigned
integers. This should result in a nice space optimization once we have
"auto-abbreviation" generation in place.

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

16 years agoImplemented optimization for BatchEmitOwnedPtrs that we only emit one complete
Ted Kremenek [Sat, 17 Nov 2007 00:40:45 +0000 (00:40 +0000)]
Implemented optimization for BatchEmitOwnedPtrs that we only emit one complete
SerializedPtrID, followed by the *differences* in IDs. The big idea is that
most IDs will be just be 1 off from the previous (either that or NULL, which
we encode as a difference if 0), so this will greatly reduce the encoding
space for extra IDs to just 1 bit per pointer.

So far this optimization reduces serialization of Carbon.h by only 1%, but
we aren't using any abbreviations now in the Bitcode file to properly take
advantage of this optimization.

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

16 years agoLive interval splitting:
Evan Cheng [Sat, 17 Nov 2007 00:40:40 +0000 (00:40 +0000)]
Live interval splitting:

When a live interval is being spilled, rather than creating short, non-spillable
intervals for every def / use, split the interval at BB boundaries. That is, for
every BB where the live interval is defined or used, create a new interval that
covers all the defs and uses in the BB.

This is designed to eliminate one common problem: multiple reloads of the same
value in a single basic block. Note, it does *not* decrease the number of spills
since no copies are inserted so the split intervals are *connected* through
spill and reloads (or rematerialization). The newly created intervals can be
spilled again, in that case, since it does not span multiple basic blocks, it's
spilled in the usual manner. However, it can reuse the same stack slot as the
previously split interval.

This is currently controlled by -split-intervals-at-bb.

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

16 years agoShrinkfy.
Evan Cheng [Sat, 17 Nov 2007 00:31:16 +0000 (00:31 +0000)]
Shrinkfy.

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

16 years agoTypo.
Evan Cheng [Fri, 16 Nov 2007 23:55:08 +0000 (23:55 +0000)]
Typo.

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

16 years agoTestcase from PR 1508 (although its's somewhat
Dale Johannesen [Fri, 16 Nov 2007 23:16:35 +0000 (23:16 +0000)]
Testcase from PR 1508 (although its's somewhat
orthogonal to the main problem there)

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

16 years agoFix for PR1801
Tanya Lattner [Fri, 16 Nov 2007 22:44:50 +0000 (22:44 +0000)]
Fix for PR1801

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

16 years agoThese were implemented
Anton Korobeynikov [Fri, 16 Nov 2007 11:12:01 +0000 (11:12 +0000)]
These were implemented

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

16 years agoFix PR1800 by correcting mistaken logic.
Chris Lattner [Fri, 16 Nov 2007 06:04:17 +0000 (06:04 +0000)]
Fix PR1800 by correcting mistaken logic.

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

16 years agofix a typo
Chris Lattner [Fri, 16 Nov 2007 05:32:05 +0000 (05:32 +0000)]
fix a typo

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

16 years agoImplement codegen for flt_rounds on x86
Anton Korobeynikov [Fri, 16 Nov 2007 01:31:51 +0000 (01:31 +0000)]
Implement codegen for flt_rounds on x86

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

16 years agoImplement necessary bits for flt_rounds gcc builtin.
Anton Korobeynikov [Thu, 15 Nov 2007 23:25:33 +0000 (23:25 +0000)]
Implement necessary bits for flt_rounds gcc builtin.
Codegen bits and llvm-gcc support will follow.

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

16 years agoBasic non-power-of-2 vector support
Nate Begeman [Thu, 15 Nov 2007 21:15:26 +0000 (21:15 +0000)]
Basic non-power-of-2 vector support

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

16 years agoReverted r44163 per request
Anton Korobeynikov [Thu, 15 Nov 2007 18:33:16 +0000 (18:33 +0000)]
Reverted r44163 per request

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

16 years agoFix bugs in iterator invalidation
Daniel Berlin [Thu, 15 Nov 2007 18:06:49 +0000 (18:06 +0000)]
Fix bugs in iterator invalidation

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

16 years agoThis assertion was bogus.
Duncan Sands [Thu, 15 Nov 2007 09:54:37 +0000 (09:54 +0000)]
This assertion was bogus.

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

16 years agoFix a thinko in post-allocation coalescer.
Evan Cheng [Thu, 15 Nov 2007 08:13:29 +0000 (08:13 +0000)]
Fix a thinko in post-allocation coalescer.

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

16 years agoFix handling of overflow in loop calculation by adding new UDiv SCEV. This SCEV
Nick Lewycky [Thu, 15 Nov 2007 06:30:50 +0000 (06:30 +0000)]
Fix handling of overflow in loop calculation by adding new UDiv SCEV. This SCEV
is disabled in the sense that it will refuse to create one from a UDiv
instruction, until the code is better tested.

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

16 years agoFix PR1788 by taking the approach suggested by Richard Smith.
Chris Lattner [Thu, 15 Nov 2007 06:10:55 +0000 (06:10 +0000)]
Fix PR1788 by taking the approach suggested by Richard Smith.
Thanks to him for his detailed analysis of the problem.

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

16 years agoImport the boost scoped_ptr class to LLVM. This patch was prepared by
Chris Lattner [Thu, 15 Nov 2007 05:57:06 +0000 (05:57 +0000)]
Import the boost scoped_ptr class to LLVM.  This patch was prepared by
Cédric Venet.

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

16 years agoMore templatization.
Owen Anderson [Thu, 15 Nov 2007 05:00:15 +0000 (05:00 +0000)]
More templatization.

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

16 years agomany edits, patch by Kelly Wilson!
Chris Lattner [Thu, 15 Nov 2007 04:51:31 +0000 (04:51 +0000)]
many edits, patch by Kelly Wilson!

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

16 years agoAdding debug output during coalescing.
Bill Wendling [Thu, 15 Nov 2007 02:06:30 +0000 (02:06 +0000)]
Adding debug output during coalescing.

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

16 years agoNeed to increment the iterator.
Bill Wendling [Thu, 15 Nov 2007 00:40:48 +0000 (00:40 +0000)]
Need to increment the iterator.

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

16 years agoFixed serious bug in BatchReadOwnedPtrs where in a chain of calls to
Ted Kremenek [Thu, 15 Nov 2007 00:05:03 +0000 (00:05 +0000)]
Fixed serious bug in BatchReadOwnedPtrs where in a chain of calls to
deserialize objects if BatchReadOwnedPtrs was called more than once in the
same call chain then the second call would overwrite the SerializedPtrIDs
being used by the first call. Solved this problem by making the vector that
holds the pointer IDs local to a function call. Now BatchReadOwnedPtrs is
reentrant.

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

16 years agoI discover array_lengthof, thanks to gabor on #llvm.
Duncan Sands [Wed, 14 Nov 2007 21:58:02 +0000 (21:58 +0000)]
I discover array_lengthof, thanks to gabor on #llvm.

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

16 years agoTweak the descriptions of the new 'const' and 'pure' attributes.
Duncan Sands [Wed, 14 Nov 2007 21:14:02 +0000 (21:14 +0000)]
Tweak the descriptions of the new 'const' and 'pure' attributes.

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

16 years agoOops. Debugging code shouldn't have been checked in.
Evan Cheng [Wed, 14 Nov 2007 19:08:32 +0000 (19:08 +0000)]
Oops. Debugging code shouldn't have been checked in.

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

16 years agoRemoved debug #define that was accidentally checked in while debugging
Ted Kremenek [Wed, 14 Nov 2007 17:42:09 +0000 (17:42 +0000)]
Removed debug #define that was accidentally checked in while debugging
the deserializer.

Fixed assertion when "stream jumping" in the deserializer to properly function
when we have reached the end of the stream.

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

16 years agoSimplify the attribute verification code.
Duncan Sands [Wed, 14 Nov 2007 14:02:11 +0000 (14:02 +0000)]
Simplify the attribute verification code.

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

16 years agoUn XFAIL these tests, now that Bill has backported
Duncan Sands [Wed, 14 Nov 2007 13:40:53 +0000 (13:40 +0000)]
Un XFAIL these tests, now that Bill has backported
the fix from 4.2.

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

16 years agoDocument pure/const parameter attributes
Anton Korobeynikov [Wed, 14 Nov 2007 10:30:13 +0000 (10:30 +0000)]
Document pure/const parameter attributes

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

16 years agoRegenerate
Anton Korobeynikov [Wed, 14 Nov 2007 09:53:48 +0000 (09:53 +0000)]
Regenerate

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

16 years agoAdd pure/const attributes. Documentation will follow.
Anton Korobeynikov [Wed, 14 Nov 2007 09:52:30 +0000 (09:52 +0000)]
Add pure/const attributes. Documentation will follow.

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

16 years agoFix PIC jump table codegen on x86-32/linux. In fact, such thing should be applied
Anton Korobeynikov [Wed, 14 Nov 2007 09:18:41 +0000 (09:18 +0000)]
Fix PIC jump table codegen on x86-32/linux. In fact, such thing should be applied
to all targets uses GOT-relative offsets for PIC (Alpha?)

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

16 years agoEliminate the recently introduced CCAssignToStackABISizeAlign
Duncan Sands [Wed, 14 Nov 2007 08:29:13 +0000 (08:29 +0000)]
Eliminate the recently introduced CCAssignToStackABISizeAlign
in favour of teaching CCAssignToStack that size 0 and/or align
0 means to use the ABI values.  This seems a neater solution.
It is safe since no legal value type has size 0.

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

16 years agoAdded two new overloaded versions of BatchEmitOwnedPtrs and
Ted Kremenek [Wed, 14 Nov 2007 08:05:03 +0000 (08:05 +0000)]
Added two new overloaded versions of BatchEmitOwnedPtrs and
BatchReadOwnedPtrs.

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

16 years agoClean up sub-register implementation by moving subReg information back to
Evan Cheng [Wed, 14 Nov 2007 07:59:08 +0000 (07:59 +0000)]
Clean up sub-register implementation by moving subReg information back to
MachineOperand auxInfo. Previous clunky implementation uses an external map
to track sub-register uses. That works because register allocator uses
a new virtual register for each spilled use. With interval splitting (coming
soon), we may have multiple uses of the same register some of which are
of using different sub-registers from others. It's too fragile to constantly
update the information.

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

16 years agoXFAIL these tests until the fix gets backported
Duncan Sands [Wed, 14 Nov 2007 07:42:50 +0000 (07:42 +0000)]
XFAIL these tests until the fix gets backported
from llvm-gcc-4.2 to 4.0.

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

16 years agoDocument a limitation, patch contributed by George Russell
Chris Lattner [Wed, 14 Nov 2007 07:04:44 +0000 (07:04 +0000)]
Document a limitation, patch contributed by George Russell

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

16 years agoAllow the block extractor take to take a list of basic blocks to not extract
Nick Lewycky [Wed, 14 Nov 2007 06:47:06 +0000 (06:47 +0000)]
Allow the block extractor take to take a list of basic blocks to not extract
from a file containing Function/BasicBlock pairings. This is not safe against
anonymous or abnormally-named Funcs or BBs.

Make bugpoint use this interface to pass the BBs list to the child bugpoint.

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

16 years agoImplement PR1796 and Transforms/SimplifyCFG/noreturn-call.ll
Chris Lattner [Wed, 14 Nov 2007 06:19:25 +0000 (06:19 +0000)]
Implement PR1796 and Transforms/SimplifyCFG/noreturn-call.ll
by inserting unreachable after no-return calls.

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

16 years agoStart the process of making MachineLoopInfo possible by templating Loop.
Owen Anderson [Wed, 14 Nov 2007 02:33:58 +0000 (02:33 +0000)]
Start the process of making MachineLoopInfo possible by templating Loop.

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

16 years agoFixed a compilation error.
Hartmut Kaiser [Tue, 13 Nov 2007 23:04:28 +0000 (23:04 +0000)]
Fixed a compilation error.

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

16 years agoFixed a strange construct. Please review.
Hartmut Kaiser [Tue, 13 Nov 2007 23:04:06 +0000 (23:04 +0000)]
Fixed a strange construct. Please review.

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

16 years agoUpdated VC++ build system
Hartmut Kaiser [Tue, 13 Nov 2007 23:03:32 +0000 (23:03 +0000)]
Updated VC++ build system

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

16 years agoFix the regression on Transforms/GlobalOpt/deadglobal-2.ll from my
Chris Lattner [Tue, 13 Nov 2007 21:46:23 +0000 (21:46 +0000)]
Fix the regression on Transforms/GlobalOpt/deadglobal-2.ll from my
patch on friday.

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

16 years agoupgrade test
Chris Lattner [Tue, 13 Nov 2007 21:42:48 +0000 (21:42 +0000)]
upgrade test

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

16 years agoRun computeDomForest() on the set of registers that need to be tested for
Owen Anderson [Tue, 13 Nov 2007 20:13:24 +0000 (20:13 +0000)]
Run computeDomForest() on the set of registers that need to be tested for
interference.

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

16 years agoPreserve LiveVariables when doing critical edge splitting.
Owen Anderson [Tue, 13 Nov 2007 20:04:45 +0000 (20:04 +0000)]
Preserve LiveVariables when doing critical edge splitting.

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

16 years agoWow. I definitely shouldn't write code when I'm tird.
Owen Anderson [Tue, 13 Nov 2007 19:56:28 +0000 (19:56 +0000)]
Wow.  I definitely shouldn't write code when I'm tird.

Make my previous patch actually do what it was intended to do.

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

16 years agoRevert previous; these files aren't ready to go in yet.
Dale Johannesen [Tue, 13 Nov 2007 19:16:02 +0000 (19:16 +0000)]
Revert previous; these files aren't ready to go in yet.

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