oota-llvm.git
16 years agoChange binary dump format.
Evan Cheng [Wed, 12 Nov 2008 08:22:43 +0000 (08:22 +0000)]
Change binary dump format.

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

16 years agoAddress mode immediate offset has already been divided by 4.
Evan Cheng [Wed, 12 Nov 2008 08:21:12 +0000 (08:21 +0000)]
Address mode immediate offset has already been divided by 4.

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

16 years agoFix a VFP binary arithmetic instruction encoding bug.
Evan Cheng [Wed, 12 Nov 2008 08:14:21 +0000 (08:14 +0000)]
Fix a VFP binary arithmetic instruction encoding bug.

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

16 years agoFix address mode 3 immediate offset mode encoding.
Evan Cheng [Wed, 12 Nov 2008 07:34:37 +0000 (07:34 +0000)]
Fix address mode 3 immediate offset mode encoding.

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

16 years agoConsolidate formats; fix FCMPED etc. encodings.
Evan Cheng [Wed, 12 Nov 2008 07:18:38 +0000 (07:18 +0000)]
Consolidate formats; fix FCMPED etc. encodings.

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

16 years agoAdd ptr annotation intrinsic.
Tanya Lattner [Wed, 12 Nov 2008 07:17:57 +0000 (07:17 +0000)]
Add ptr annotation intrinsic.

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

16 years agoFix VFP conversion instruction encodings.
Evan Cheng [Wed, 12 Nov 2008 06:41:41 +0000 (06:41 +0000)]
Fix VFP conversion instruction encodings.

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

16 years agoFix encoding of single-precision VFP registers.
Evan Cheng [Wed, 12 Nov 2008 02:19:38 +0000 (02:19 +0000)]
Fix encoding of single-precision VFP registers.

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

16 years agoFix the testb optimization so x86 also bootstraps.
Dale Johannesen [Wed, 12 Nov 2008 02:00:35 +0000 (02:00 +0000)]
Fix the testb optimization so x86 also bootstraps.
Reenable test.

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

16 years agoVFP fld / fst immediate field is multiplied by 4.
Evan Cheng [Wed, 12 Nov 2008 01:02:24 +0000 (01:02 +0000)]
VFP fld / fst immediate field is multiplied by 4.

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

16 years agoCMake: Remove removed source file.
Oscar Fuentes [Wed, 12 Nov 2008 00:14:12 +0000 (00:14 +0000)]
CMake: Remove removed source file.

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

16 years agoAdd a bit of lazy evaluation to PopulateCompilationGraph().
Mikhail Glushenkov [Wed, 12 Nov 2008 00:05:17 +0000 (00:05 +0000)]
Add a bit of lazy evaluation to PopulateCompilationGraph().

Only the tools that are mentioned in the compilation graph definition
are now inserted by PopulateCompilationGraph(). This should cut down
plugin loading time a little.

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

16 years agoSome cosmetic changes.
Mikhail Glushenkov [Wed, 12 Nov 2008 00:04:46 +0000 (00:04 +0000)]
Some cosmetic changes.

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

16 years agoRemove
Devang Patel [Tue, 11 Nov 2008 23:58:15 +0000 (23:58 +0000)]
Remove

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

16 years agoUndo previous check-in.
Devang Patel [Tue, 11 Nov 2008 23:57:33 +0000 (23:57 +0000)]
Undo previous check-in.

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

16 years agoThis shouldn't be necessary
Andrew Lenharth [Tue, 11 Nov 2008 23:19:51 +0000 (23:19 +0000)]
This shouldn't be necessary

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

16 years agoFix FMDRR encoding.
Evan Cheng [Tue, 11 Nov 2008 22:46:12 +0000 (22:46 +0000)]
Fix FMDRR encoding.

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

16 years agoHandle floating point constpool_entry's.
Evan Cheng [Tue, 11 Nov 2008 22:19:31 +0000 (22:19 +0000)]
Handle floating point constpool_entry's.

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

16 years agoDon't walk into predecessors in which the vreg is not live when doing shrinkwrapping.
Owen Anderson [Tue, 11 Nov 2008 22:11:27 +0000 (22:11 +0000)]
Don't walk into predecessors in which the vreg is not live when doing shrinkwrapping.
This lets several failing tests get farther along, but doesn't completely fix any of them.

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

16 years agoEncode VFP load / store instructions.
Evan Cheng [Tue, 11 Nov 2008 21:48:44 +0000 (21:48 +0000)]
Encode VFP load / store instructions.

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

16 years agoIn ScheduleDAGRRList::CopyAndMoveSuccessors, create the SUnit for the load
Dan Gohman [Tue, 11 Nov 2008 21:34:44 +0000 (21:34 +0000)]
In ScheduleDAGRRList::CopyAndMoveSuccessors, create the SUnit for the load
before creating the SUnit for the operation that it was unfolded from. This
allows each SUnit to have all of its predecessor SUnits available at the time
it is created. I don't know yet if this will be absolutely required, but it
is a little tidier to do it this way.

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

16 years agoAvoid relying on the SelectionDAG for initializing the MachineFunction and
Dan Gohman [Tue, 11 Nov 2008 21:31:56 +0000 (21:31 +0000)]
Avoid relying on the SelectionDAG for initializing the MachineFunction and
TargetLoweringInfo variables for the scheduler.

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

16 years agoCMake: Updated library dependency info used for MSVC++.
Oscar Fuentes [Tue, 11 Nov 2008 20:04:40 +0000 (20:04 +0000)]
CMake: Updated library dependency info used for MSVC++.

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

16 years agoCMake: Updated list of source files for lib/Transforms/Utils.
Oscar Fuentes [Tue, 11 Nov 2008 19:51:36 +0000 (19:51 +0000)]
CMake: Updated list of source files for lib/Transforms/Utils.

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

16 years agoEncode VFP conversion instructions.
Evan Cheng [Tue, 11 Nov 2008 19:40:26 +0000 (19:40 +0000)]
Encode VFP conversion instructions.

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

16 years agolast validation errors
Chris Lattner [Tue, 11 Nov 2008 19:36:31 +0000 (19:36 +0000)]
last validation errors

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

16 years agoRemove incomplete lto-bugpoint tool. If there is an interest then we can resurrect...
Devang Patel [Tue, 11 Nov 2008 19:35:38 +0000 (19:35 +0000)]
Remove incomplete lto-bugpoint tool. If there is an interest then we can resurrect this tool later on and finish implementation.

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

16 years agofix some validation errors <it> -> <i>
Chris Lattner [Tue, 11 Nov 2008 19:35:15 +0000 (19:35 +0000)]
fix some validation errors <it> -> <i>

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

16 years agofix some validation errors.
Chris Lattner [Tue, 11 Nov 2008 19:34:28 +0000 (19:34 +0000)]
fix some validation errors.

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

16 years agoAdd utility pass to remove dbg info.
Devang Patel [Tue, 11 Nov 2008 19:33:39 +0000 (19:33 +0000)]
Add utility pass to remove dbg info.

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

16 years agoremove an extraneous tag
Chris Lattner [Tue, 11 Nov 2008 19:31:26 +0000 (19:31 +0000)]
remove an extraneous tag

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

16 years agoMake this document *substantially* better and cover a lot more territory.
Chris Lattner [Tue, 11 Nov 2008 19:30:41 +0000 (19:30 +0000)]
Make this document *substantially* better and cover a lot more territory.
Document written by Mason Woo (http://www.woo.com)!

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

16 years agoSilence unused variable warning.
Devang Patel [Tue, 11 Nov 2008 19:17:41 +0000 (19:17 +0000)]
Silence unused variable warning.

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

16 years agoUse actual function name in comments.
Devang Patel [Tue, 11 Nov 2008 19:16:41 +0000 (19:16 +0000)]
Use actual function name in comments.

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

16 years agoChange the scheduler accessor methods to accept an explicit TargetMachine
Dan Gohman [Tue, 11 Nov 2008 17:50:47 +0000 (17:50 +0000)]
Change the scheduler accessor methods to accept an explicit TargetMachine
argument instead of taking the SelectionDAG's TargetMachine. This is
needed for some upcoming scheduler changes.

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

16 years agoAdd a README entry.
Evan Cheng [Tue, 11 Nov 2008 17:35:52 +0000 (17:35 +0000)]
Add a README entry.

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

16 years agoCMake: forces rebuild of llvm-config's library dependency info when a
Oscar Fuentes [Tue, 11 Nov 2008 17:10:58 +0000 (17:10 +0000)]
CMake: forces rebuild of llvm-config's library dependency info when a
library is added or changed.

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

16 years agoCMake: corrected split of Alpha and Sparc AsmPrinters.
Oscar Fuentes [Tue, 11 Nov 2008 17:10:13 +0000 (17:10 +0000)]
CMake: corrected split of Alpha and Sparc AsmPrinters.

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

16 years agoCMake: Removed unnecessary library path setting that was breaking the
Oscar Fuentes [Tue, 11 Nov 2008 16:56:52 +0000 (16:56 +0000)]
CMake: Removed unnecessary library path setting that was breaking the
build on OS X.

Fix by Jjgod Jiang!

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

16 years agoSeparate sparc asmprinter. This should unbreak the native build
Anton Korobeynikov [Tue, 11 Nov 2008 16:42:57 +0000 (16:42 +0000)]
Separate sparc asmprinter. This should unbreak the native build

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

16 years agoSeparate alpha asmprinter. This should unbreak native build.
Anton Korobeynikov [Tue, 11 Nov 2008 16:42:17 +0000 (16:42 +0000)]
Separate alpha asmprinter. This should unbreak native build.

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

16 years agoThe 32-bit displacement field in an x86 address is signed. Arrange for it
Dan Gohman [Tue, 11 Nov 2008 15:52:29 +0000 (15:52 +0000)]
The 32-bit displacement field in an x86 address is signed. Arrange for it
to be sign-extended when it is promoted to 64 bits for intermediate
offset calculations. The offset calculations are done as uint64_t so that
overflow conditions are well defined.

This fixes a problem which is currently hidden by the x86 AsmPrinter but
which was exposed by r58917 (which is temporarily reverted).  See PR3027
for details.

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

16 years agoAdd svn:ignore properties for srcdir = objdir builds.
Dan Gohman [Tue, 11 Nov 2008 15:36:42 +0000 (15:36 +0000)]
Add svn:ignore properties for srcdir = objdir builds.

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

16 years agoUpdate CMakeLists.txt
Cedric Venet [Tue, 11 Nov 2008 09:55:48 +0000 (09:55 +0000)]
Update CMakeLists.txt

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

16 years agoFix for PR3040:
Bill Wendling [Tue, 11 Nov 2008 08:25:46 +0000 (08:25 +0000)]
Fix for PR3040:

The CC was changed, but wasn't checked to see if it was legal if the DAG
combiner was being run after legalization. Threw in a couple of checks just to
make sure that it's okay. As far as the PR is concerned, no back-end target
actually exhibited this problem, so there isn't an associated testcase.

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

16 years agofix another libgcc blocker
Andrew Lenharth [Tue, 11 Nov 2008 06:06:07 +0000 (06:06 +0000)]
fix another libgcc blocker

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

16 years agoCleaned up and fix bugs in convert_rndsat node
Mon P Wang [Tue, 11 Nov 2008 05:40:06 +0000 (05:40 +0000)]
Cleaned up and fix bugs in convert_rndsat node

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

16 years agoUn-XFAIL tests now that they're fixed.
Bill Wendling [Tue, 11 Nov 2008 04:44:42 +0000 (04:44 +0000)]
Un-XFAIL tests now that they're fixed.

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

16 years agoUnbreak the buildbot and back out (inadvertant) casting edits in CellSPU
Scott Michel [Tue, 11 Nov 2008 03:06:06 +0000 (03:06 +0000)]
Unbreak the buildbot and back out (inadvertant) casting edits in CellSPU
backend.

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

16 years agoEncode VFP arithmetic instructions.
Evan Cheng [Tue, 11 Nov 2008 02:11:05 +0000 (02:11 +0000)]
Encode VFP arithmetic instructions.

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

16 years agoCleanup debug info. assocated with deleted instructions.
Devang Patel [Tue, 11 Nov 2008 00:54:10 +0000 (00:54 +0000)]
Cleanup debug info. assocated with deleted instructions.

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

16 years agoAdd utility routines to remove dead debug info.
Devang Patel [Tue, 11 Nov 2008 00:53:02 +0000 (00:53 +0000)]
Add utility routines to remove dead debug info.

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

16 years agor59009 broke these tests. XFAIL for now.
Bill Wendling [Tue, 11 Nov 2008 00:36:10 +0000 (00:36 +0000)]
r59009 broke these tests. XFAIL for now.

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

16 years agoCellSPU: Fix bug 3606, as well as some ongoing work.
Scott Michel [Mon, 10 Nov 2008 23:43:06 +0000 (23:43 +0000)]
CellSPU: Fix bug 3606, as well as some ongoing work.

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

16 years agoSmall simplification. Use the iterator already present as the insertion point.
Bill Wendling [Mon, 10 Nov 2008 23:38:59 +0000 (23:38 +0000)]
Small simplification. Use the iterator already present as the insertion point.

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

16 years agoComments and indentation.
Evan Cheng [Mon, 10 Nov 2008 23:26:16 +0000 (23:26 +0000)]
Comments and indentation.

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

16 years agoCorrect PIC function stub codegen.
Evan Cheng [Mon, 10 Nov 2008 23:14:47 +0000 (23:14 +0000)]
Correct PIC function stub codegen.

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

16 years agoCMake: Fixed cross-compiling.
Oscar Fuentes [Mon, 10 Nov 2008 22:09:59 +0000 (22:09 +0000)]
CMake: Fixed cross-compiling.

`clean' makefile target removes add-hoc directory created for building
the native tablegen.

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

16 years agoFix indentation.
Dan Gohman [Mon, 10 Nov 2008 22:09:58 +0000 (22:09 +0000)]
Fix indentation.

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

16 years agoTemporarily revert r58979 and related patch. It's causing a failure in X86 bootstrap:
Bill Wendling [Mon, 10 Nov 2008 21:22:06 +0000 (21:22 +0000)]
Temporarily revert r58979 and related patch. It's causing a failure in X86 bootstrap:

Comparing stages 2 and 3
warning: ./cc1-checksum.o differs
warning: ./cc1obj-checksum.o differs
warning: ./cc1objplus-checksum.o differs
warning: ./cc1plus-checksum.o differs
Bootstrap comparison failure!
./alias.o differs
./alloc-pool.o differs
./attribs.o differs
./bb-reorder.o differs
./bitmap.o differs
./build/errors.o differs
./build/genattrtab.o differs
./build/genautomata.o differs
./build/genemit.o differs
./build/genextract.o differs
...

-bw

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

16 years ago- Make sure that we don't over-increment the iterator when going through the
Bill Wendling [Mon, 10 Nov 2008 21:13:10 +0000 (21:13 +0000)]
- Make sure that we don't over-increment the iterator when going through the
  basic blocks.
- Minor code clean-up.

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

16 years agoAdded CONVERT_RNDSAT (conversion with rounding and saturation) SDNode to
Mon P Wang [Mon, 10 Nov 2008 20:54:11 +0000 (20:54 +0000)]
Added CONVERT_RNDSAT (conversion with rounding and saturation) SDNode to
support targets that support these conversions. Users should avoid using
this node as the current targets don't generating code for it.

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

16 years agoUpdate VC++ project file.
Steve Naroff [Mon, 10 Nov 2008 20:03:21 +0000 (20:03 +0000)]
Update VC++ project file.

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

16 years agoIf the sign of exit condition and split condition does not match
Devang Patel [Mon, 10 Nov 2008 19:48:34 +0000 (19:48 +0000)]
If the sign of exit condition and split condition does not match
then do not split loop index.

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

16 years agoFix PR2667: add soft float support for sint_to_fp/uint_to_fp
Duncan Sands [Mon, 10 Nov 2008 17:36:26 +0000 (17:36 +0000)]
Fix PR2667: add soft float support for sint_to_fp/uint_to_fp
where the argument is an apint, or smaller than the minimum
size for which there is a libcall (i32).

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

16 years agoTweak some comments.
Duncan Sands [Mon, 10 Nov 2008 17:31:56 +0000 (17:31 +0000)]
Tweak some comments.

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

16 years agoSmall cleanups. No functionality change intended!
Duncan Sands [Mon, 10 Nov 2008 17:29:56 +0000 (17:29 +0000)]
Small cleanups.  No functionality change intended!

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

16 years agoWhen promoting the result of fp_to_uint/fp_to_sint,
Duncan Sands [Mon, 10 Nov 2008 17:28:30 +0000 (17:28 +0000)]
When promoting the result of fp_to_uint/fp_to_sint,
inform the optimizers that the result must be zero/
sign extended from the smaller type.  For example,
if a fp to unsigned i16 is promoted to fp to i32,
then we are allowed to assume that the extra 16 bits
are zero (because the result of fp to i16 is undefined
if the result does not fit in an i16).  This is
quite aggressive, but should help the optimizers
produce better code.  This requires correcting a
test which thought that fp_to_uint is some kind
of truncation, which it is not: in the testcase
(which does fp to i1), either the fp value converts
to 0 or 1 or the result is undefined, which is
quite different to truncation.

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

16 years agoWork around PR1000.
Duncan Sands [Mon, 10 Nov 2008 10:05:09 +0000 (10:05 +0000)]
Work around PR1000.

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

16 years agoProper way of doing llvm canadian-cross compilation.
Anton Korobeynikov [Mon, 10 Nov 2008 07:33:13 +0000 (07:33 +0000)]
Proper way of doing llvm canadian-cross compilation.
Patch by Jim Grosbach!

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

16 years agoReenable test.
Dale Johannesen [Mon, 10 Nov 2008 07:30:32 +0000 (07:30 +0000)]
Reenable test.

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

16 years agoReally fix testb optimization on big-endian.
Dale Johannesen [Mon, 10 Nov 2008 07:16:42 +0000 (07:16 +0000)]
Really fix testb optimization on big-endian.
Fixes ppc32 bootstrap.

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

16 years agoThird time's a charm.
Bill Wendling [Mon, 10 Nov 2008 06:59:06 +0000 (06:59 +0000)]
Third time's a charm.

The previous patches didn't match correctly. Also, we need to make sure that
the conditional is the same before doing the transformation.

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

16 years agofinal edits
Chris Lattner [Mon, 10 Nov 2008 05:40:34 +0000 (05:40 +0000)]
final edits

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

16 years agoAdded support for the following definition of shufflevector
Mon P Wang [Mon, 10 Nov 2008 04:46:22 +0000 (04:46 +0000)]
Added support for the following definition of shufflevector
<result> = shufflevector <n x <ty>> <v1>, <n x <ty>> <v2>, <m x i32> <mask>

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

16 years agoeliminate a couple more uses of utohexstr.
Chris Lattner [Mon, 10 Nov 2008 04:35:24 +0000 (04:35 +0000)]
eliminate a couple more uses of utohexstr.

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

16 years agoUse utohex_buffer instead of utohexstr to avoid creating a temporary
Chris Lattner [Mon, 10 Nov 2008 04:30:26 +0000 (04:30 +0000)]
Use utohex_buffer instead of utohexstr to avoid creating a temporary
string in the .ll and .s printers.

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

16 years agosplit out the functionality of utohexstr into a new utohex_buffer
Chris Lattner [Mon, 10 Nov 2008 04:22:46 +0000 (04:22 +0000)]
split out the functionality of utohexstr into a new utohex_buffer
helper.  This allows us to convert numbers to hex without necessarily
needing to make a std::string to hold the result.

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

16 years agoMove getCastToEmpty out of DIDescriptor into DIFactory. It is an
Chris Lattner [Mon, 10 Nov 2008 04:10:34 +0000 (04:10 +0000)]
Move getCastToEmpty out of DIDescriptor into DIFactory.  It is an
implementation detail of DIFactory anyway, and this allows it to avoid
recomputing the same type over and over.

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

16 years agoFix an over aggressive assumption that struct decls will have a pointer to
Chris Lattner [Mon, 10 Nov 2008 03:48:55 +0000 (03:48 +0000)]
Fix an over aggressive assumption that struct decls will have a pointer to
an array that is empty.  Instead of requiring this array, allow a null pointer.
This shrinks all forward references of structs.

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

16 years agoFix a bug with default arguments that apple gcc doesn't notice that llvmbb does.
Chris Lattner [Mon, 10 Nov 2008 03:11:39 +0000 (03:11 +0000)]
Fix a bug with default arguments that apple gcc doesn't notice that llvmbb does.

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

16 years agomove some cases around to silence these sorts of warnings in
Chris Lattner [Mon, 10 Nov 2008 03:05:41 +0000 (03:05 +0000)]
move some cases around to silence these sorts of warnings in
release-asserts build:

llvm/CodeGen/SelectionDAGNodes.h:1298: warning: control may reach end of non-void function 'unsigned int llvm::MVT::getSizeInBits() const' being inlined

what an unhelpful warning.

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

16 years agoadd new file
Chris Lattner [Mon, 10 Nov 2008 02:58:28 +0000 (02:58 +0000)]
add new file

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

16 years agoAdd a new set of helper classes for creating and reading debug
Chris Lattner [Mon, 10 Nov 2008 02:56:27 +0000 (02:56 +0000)]
Add a new set of helper classes for creating and reading debug
information.  This logically replaces the "Desc" classes in
MachineModuleInfo.  Nice features of these classes are that they:

1. Are much more efficient than MMI because they don't create a
   temporary parallel data structure for debug info that has to be
   'serialized' and 'deserialized' into/out of the module.
2. These provide a much cleaner abstraction for debug info than
   MMI, which will make it easier to change the implementation in
   the future (to be MDNode-based).
3. These are much easier to use than the MMI interfaces, requiring
   a lot less code in the front-ends.
4. These can be used to both create (for frontends) and read (for
   codegen) debug information.  DebugInfoBuilder can only be used
   to create the nodes.

So far, this is implemented just enough to support the debug info
generation needs of clang.  This can and should be extended to
support the full set of debug info constructs, and we should switch
llvm-gcc and llc over to using this in the near future.

This code also has a ton of FIXMEs in it, because the way we
currently represent debug info in LLVM IR is basically insane in a
variety of details.  This sort of issue should be fixed when we
eventually reimplement debug info on top of MDNodes.

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

16 years agoCMake: Builds a native tblgen when cross-compiling and the user didn't
Oscar Fuentes [Mon, 10 Nov 2008 02:35:55 +0000 (02:35 +0000)]
CMake: Builds a native tblgen when cross-compiling and the user didn't
set LLVM_TABLEGEN.

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

16 years agoForgot these.
Evan Cheng [Mon, 10 Nov 2008 01:52:24 +0000 (01:52 +0000)]
Forgot these.

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

16 years agoCMake: Implement magic word `all' for selecting all targets. Check
Oscar Fuentes [Mon, 10 Nov 2008 01:47:07 +0000 (01:47 +0000)]
CMake: Implement magic word `all' for selecting all targets. Check
that specified targets are known.

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

16 years agoCMake: Non-working code for auto-building the native tblgen util when
Oscar Fuentes [Mon, 10 Nov 2008 01:32:14 +0000 (01:32 +0000)]
CMake: Non-working code for auto-building the native tblgen util when
cross-compiling.

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

16 years agoRename isGVNonLazyPtr to isIndirectSym to reflect how it will be used.
Evan Cheng [Mon, 10 Nov 2008 01:08:07 +0000 (01:08 +0000)]
Rename isGVNonLazyPtr to isIndirectSym to reflect how it will be used.

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

16 years agoCorrection for the last patch. Should match the conditional in the first part
Bill Wendling [Sun, 9 Nov 2008 23:37:53 +0000 (23:37 +0000)]
Correction for the last patch. Should match the conditional in the first part
of the select match, not the select instruction itself.

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

16 years agoThe method of doing the matching with a 'select' instruction was wrong. The
Bill Wendling [Sun, 9 Nov 2008 23:17:42 +0000 (23:17 +0000)]
The method of doing the matching with a 'select' instruction was wrong. The
original code was matching like this:

if (match(A, m_Not(m_Value(B))))

B was already matched as a 'select' instruction. However, this isn't matching
what we think it's matching. It would match B as a 'Value', so basically
anything would match to it. In this case, a Constant matched. B was replaced
with a constant representation. And then the wrong value would be used in the
SelectInst::Create statement, causing a crash.

After thinking on this for a moment, and after Nick L. told me how the pattern
matching stuff was supposed to work, the solution was to match NOT an m_Value,
but an m_Select.

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

16 years agosuppress build products
Gabor Greif [Sun, 9 Nov 2008 21:33:37 +0000 (21:33 +0000)]
suppress build products

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

16 years agoCMake: Corrected detection of `nm'.
Oscar Fuentes [Sun, 9 Nov 2008 20:26:31 +0000 (20:26 +0000)]
CMake: Corrected detection of `nm'.

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

16 years agoCMake: Support for cross-compiling. For now, requires a previously
Oscar Fuentes [Sun, 9 Nov 2008 18:53:19 +0000 (18:53 +0000)]
CMake: Support for cross-compiling. For now, requires a previously
built native tblgen which is passed to cmake in the variable
LLVM_TABLEGEN.

See

http://www.cmake.org/Wiki/CmakeMingw

for a quick example on how to cross-compile with CMake.

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

16 years agofix validation problem.
Chris Lattner [Sun, 9 Nov 2008 17:19:14 +0000 (17:19 +0000)]
fix validation problem.

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

16 years agoXFAIL this while waiting for a fix.
Duncan Sands [Sun, 9 Nov 2008 13:07:47 +0000 (13:07 +0000)]
XFAIL this while waiting for a fix.

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

16 years agofix leakage of ValueNumbering
Nuno Lopes [Sun, 9 Nov 2008 12:45:23 +0000 (12:45 +0000)]
fix leakage of ValueNumbering

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

16 years agoTemporarily revert 58825, which breaks PPC bootstrap.
Dale Johannesen [Sun, 9 Nov 2008 06:48:10 +0000 (06:48 +0000)]
Temporarily revert 58825, which breaks PPC bootstrap.
xs

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

16 years agoIf the LHS of the FCMP is coming from a UIToFP instruction, then we don't want
Bill Wendling [Sun, 9 Nov 2008 04:26:50 +0000 (04:26 +0000)]
If the LHS of the FCMP is coming from a UIToFP instruction, then we don't want
to generate signed ICMP instructions to replace the FCMP. This would violate
the following:

define i1 @test1(i32 %val) {
  %1 = uitofp i32 %val to double
  %2 = fcmp ole double %1, 0.000000e+00
  ret i1 %2
}

would be transformed into:

define i1 @test1(i32 %val) {
  %1 = icmp slt i33 %val, 1
  ret i1 %1
}

which is obviously wrong. This patch modifes InstCombiner::FoldFCmp_IntToFP_Cst
to handle when the LHS comes from UIToFP.

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

16 years agoTypo fix
Anton Korobeynikov [Sun, 9 Nov 2008 02:54:13 +0000 (02:54 +0000)]
Typo fix

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