oota-llvm.git
19 years agonew header
Chris Lattner [Mon, 24 Oct 2005 00:59:49 +0000 (00:59 +0000)]
new header

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

19 years agoimplement some prototypes
Chris Lattner [Mon, 24 Oct 2005 00:38:38 +0000 (00:38 +0000)]
implement some prototypes

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

19 years agoadd some prototypes
Chris Lattner [Mon, 24 Oct 2005 00:38:25 +0000 (00:38 +0000)]
add some prototypes

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

19 years agomove this to the analyze tool
Chris Lattner [Mon, 24 Oct 2005 00:27:36 +0000 (00:27 +0000)]
move this to the analyze tool

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

19 years agoDon't invade the system namespace
Chris Lattner [Mon, 24 Oct 2005 00:16:03 +0000 (00:16 +0000)]
Don't invade the system namespace

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

19 years agoUse archive versions of these libraries, using the LinkAllPasses header.
Chris Lattner [Mon, 24 Oct 2005 00:12:20 +0000 (00:12 +0000)]
Use archive versions of these libraries, using the LinkAllPasses header.

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

19 years agoThere is no need for this to be VC++ only
Chris Lattner [Mon, 24 Oct 2005 00:08:51 +0000 (00:08 +0000)]
There is no need for this to be VC++ only

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

19 years agoFix a nasty bug that was causing miscompilation of global variables
Chris Lattner [Sun, 23 Oct 2005 23:54:56 +0000 (23:54 +0000)]
Fix a nasty bug that was causing miscompilation of global variables
on big endian 32-bit targets in some cases (e.g. PPC).  This fixes several
PPC JIT failures.

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

19 years agoShrinkify to match llc
Chris Lattner [Sun, 23 Oct 2005 22:39:01 +0000 (22:39 +0000)]
Shrinkify to match llc

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

19 years agoShrinkify to make --help output look better
Chris Lattner [Sun, 23 Oct 2005 22:37:13 +0000 (22:37 +0000)]
Shrinkify to make --help output look better

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

19 years agoshrinkify the option name a bit
Chris Lattner [Sun, 23 Oct 2005 22:35:42 +0000 (22:35 +0000)]
shrinkify the option name a bit

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

19 years agoSimplify this, matching changes in the tblgen emitter
Chris Lattner [Sun, 23 Oct 2005 22:34:25 +0000 (22:34 +0000)]
Simplify this, matching changes in the tblgen emitter

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

19 years agoSimplify this due to changes in the tblgen side
Chris Lattner [Sun, 23 Oct 2005 22:33:22 +0000 (22:33 +0000)]
Simplify this due to changes in the tblgen side

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

19 years agoAdd the needed #include, emit enums with the sizes of tables, remove
Chris Lattner [Sun, 23 Oct 2005 22:33:08 +0000 (22:33 +0000)]
Add the needed #include, emit enums with the sizes of tables, remove
definitions from the LLVM namespace, since they are all static.

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

19 years agomark this as beta
Chris Lattner [Sun, 23 Oct 2005 22:23:45 +0000 (22:23 +0000)]
mark this as beta

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

19 years agoIf a user requests help, give them help on both features and processors
Chris Lattner [Sun, 23 Oct 2005 22:23:13 +0000 (22:23 +0000)]
If a user requests help, give them help on both features and processors

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

19 years agoAutogen subtarget information from .td files.
Chris Lattner [Sun, 23 Oct 2005 22:15:34 +0000 (22:15 +0000)]
Autogen subtarget information from .td files.

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

19 years agoAdd subtarget feature/processor defns to the .td file
Chris Lattner [Sun, 23 Oct 2005 22:08:45 +0000 (22:08 +0000)]
Add subtarget feature/processor defns to the .td file

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

19 years agorearrange things a bit so that instructions can use subtarget features in the
Chris Lattner [Sun, 23 Oct 2005 22:08:13 +0000 (22:08 +0000)]
rearrange things a bit so that instructions can use subtarget features in the
future.

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

19 years agoadd a marker
Chris Lattner [Sun, 23 Oct 2005 22:07:20 +0000 (22:07 +0000)]
add a marker

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

19 years agoadd a note that Nate mentioned last week
Chris Lattner [Sun, 23 Oct 2005 21:44:59 +0000 (21:44 +0000)]
add a note that Nate mentioned last week

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

19 years agoPut some of my random notes somewhere public
Chris Lattner [Sun, 23 Oct 2005 19:52:42 +0000 (19:52 +0000)]
Put some of my random notes somewhere public

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

19 years agoWork around GCC's dislike of attributes on function definitions.
Jeff Cohen [Sun, 23 Oct 2005 15:22:50 +0000 (15:22 +0000)]
Work around GCC's dislike of attributes on function definitions.

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

19 years agoRemove deleted files from Visual Studio.
Jeff Cohen [Sun, 23 Oct 2005 15:21:52 +0000 (15:21 +0000)]
Remove deleted files from Visual Studio.

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

19 years agoRemove the obsolete instr selector emitter
Chris Lattner [Sun, 23 Oct 2005 05:47:52 +0000 (05:47 +0000)]
Remove the obsolete instr selector emitter

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

19 years agoImprove help output.
Chris Lattner [Sun, 23 Oct 2005 05:33:39 +0000 (05:33 +0000)]
Improve help output.

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

19 years agoimprove -help output
Chris Lattner [Sun, 23 Oct 2005 05:28:51 +0000 (05:28 +0000)]
improve -help output

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

19 years agoMove static functions from .h file, reduce #includes, pass strings by const&,
Chris Lattner [Sun, 23 Oct 2005 05:26:26 +0000 (05:26 +0000)]
Move static functions from .h file, reduce #includes, pass strings by const&,
use LowercaseString from StringExtras.h, remove extraneous space from help
output.

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

19 years agoMove static functions to .cpp file, reduce #includes, pass strings by
Chris Lattner [Sun, 23 Oct 2005 05:25:19 +0000 (05:25 +0000)]
Move static functions to .cpp file, reduce #includes, pass strings by
const&.

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

19 years agoRemove redundant flag.
Jeff Cohen [Sun, 23 Oct 2005 04:51:22 +0000 (04:51 +0000)]
Remove redundant flag.

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

19 years agoWhen a function takes a variable number of pointer arguments, with a zero
Jeff Cohen [Sun, 23 Oct 2005 04:37:20 +0000 (04:37 +0000)]
When a function takes a variable number of pointer arguments, with a zero
pointer marking the end of the list, the zero *must* be cast to the pointer
type.  An un-cast zero is a 32-bit int, and at least on x86_64, gcc will
not extend the zero to 64 bits, thus allowing the upper 32 bits to be
random junk.

The new END_WITH_NULL macro may be used to annotate a such a function
so that GCC (version 4 or newer) will detect the use of un-casted zero
at compile time.

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

19 years agoAdd several things.
Andrew Lenharth [Sun, 23 Oct 2005 03:43:48 +0000 (03:43 +0000)]
Add several things.
loads
branches
setcc
working calls
Global address
External addresses

now I can manage malloc calls.

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

19 years agoadd TargetExternalSymbol
Andrew Lenharth [Sun, 23 Oct 2005 03:40:17 +0000 (03:40 +0000)]
add TargetExternalSymbol

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

19 years agoAdd new files to Visual Studio.
Jeff Cohen [Sun, 23 Oct 2005 01:22:33 +0000 (01:22 +0000)]
Add new files to Visual Studio.

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

19 years agoWell, the Constant matching pattern works. Can't say much about calls or globals...
Andrew Lenharth [Sat, 22 Oct 2005 22:06:58 +0000 (22:06 +0000)]
Well, the Constant matching pattern works.  Can't say much about calls or globals yet.

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

19 years agodocument this as experimental
Chris Lattner [Sat, 22 Oct 2005 22:00:45 +0000 (22:00 +0000)]
document this as experimental

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

19 years agoThis file is entirely ifdef'd out
Chris Lattner [Sat, 22 Oct 2005 19:37:08 +0000 (19:37 +0000)]
This file is entirely ifdef'd out

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

19 years agoBuildSDIV and BuildUDIV only work for i32/i64, but they don't check that
Chris Lattner [Sat, 22 Oct 2005 18:50:15 +0000 (18:50 +0000)]
BuildSDIV and BuildUDIV only work for i32/i64, but they don't check that
the input is that type, this caused a failure on gs on X86 last night.
Move the hard checks into Build[US]Div since that is where decisions like
this should be made.

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

19 years agoAdd g3 back to the mix and reorder to irritate them anal folk. Actually, it's
Jim Laskey [Sat, 22 Oct 2005 08:04:24 +0000 (08:04 +0000)]
Add g3 back to the mix and reorder to irritate them anal folk.  Actually, it's
to group appropriately and provide cues to maintainers that the lists don't
need to be ordered.

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

19 years agoSort the features and processor lists for the sake of search (and maintainers.)
Jim Laskey [Sat, 22 Oct 2005 07:59:56 +0000 (07:59 +0000)]
Sort the features and processor lists for the sake of search (and maintainers.)

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

19 years ago64-bit reg support should not be enabled by default, as support isn't complete.
Chris Lattner [Fri, 21 Oct 2005 22:15:43 +0000 (22:15 +0000)]
64-bit reg support should not be enabled by default, as support isn't complete.

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

19 years agoadd a case missing from the dag combiner that exposed the failure on
Chris Lattner [Fri, 21 Oct 2005 21:23:25 +0000 (21:23 +0000)]
add a case missing from the dag combiner that exposed the failure on
2005-10-21-longlonggtu.ll.

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

19 years agoInstead of aborting if not a case we can handle specially, break out and
Chris Lattner [Fri, 21 Oct 2005 21:17:10 +0000 (21:17 +0000)]
Instead of aborting if not a case we can handle specially, break out and
let the generic code handle it.  This fixes CodeGen/Generic/2005-10-21-longlonggtu.ll on ppc.

also, reindent this code

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

19 years agoNew testcase that crashes the ppc backend
Chris Lattner [Fri, 21 Oct 2005 21:09:13 +0000 (21:09 +0000)]
New testcase that crashes the ppc backend

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

19 years agoPlugin new subtarget backend into the build.
Jim Laskey [Fri, 21 Oct 2005 19:05:19 +0000 (19:05 +0000)]
Plugin new subtarget backend into the build.

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

19 years agoNew TableGen backends for subtarget information. Only command line stuff
Jim Laskey [Fri, 21 Oct 2005 19:00:04 +0000 (19:00 +0000)]
New TableGen backends for subtarget information.  Only command line stuff
active now.  Scheduling itinerary next.

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

19 years agosilence a release mode warning
Chris Lattner [Fri, 21 Oct 2005 16:01:26 +0000 (16:01 +0000)]
silence a release mode warning

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

19 years agoadd missing prototype
Chris Lattner [Fri, 21 Oct 2005 15:49:28 +0000 (15:49 +0000)]
add missing prototype

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

19 years agoMake the coallescer a bit smarter, allowing it to join more live ranges.
Chris Lattner [Fri, 21 Oct 2005 06:49:50 +0000 (06:49 +0000)]
Make the coallescer a bit smarter, allowing it to join more live ranges.
For example, we can now join things like [0-30:0)[31-40:1)[52-59:2)
with [40:60:0) if the 52-59 range is defined by a copy from the 40-60 range.
The resultant range ends up being [0-30:0)[31-60:1).

This fires a lot through-out the test suite (e.g. shrinking bc from
19492 -> 18509 machineinstrs) though most gains are smaller (e.g. about
50 copies eliminated from crafty).

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

19 years agoFix LiveInterval::getOverlapingRanges to take things in the right order
Chris Lattner [Fri, 21 Oct 2005 06:41:30 +0000 (06:41 +0000)]
Fix LiveInterval::getOverlapingRanges to take things in the right order
(an unused method).

Fix the merger so that it can merge ranges like this  [10:12)[16:40) with
[12:38) into [10:40) instead of bogus ranges.  This sort of input will be
possible for the merger coming shortly

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

19 years agoMatch rotate. This does actually match the rotates in an rc5 cipher, but I
Nate Begeman [Fri, 21 Oct 2005 06:36:18 +0000 (06:36 +0000)]
Match rotate.  This does actually match the rotates in an rc5 cipher, but I
haven't seen it fire on our testsuite.

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

19 years agoMy previous patch was too conservative. Reject FP and void types, but do
Chris Lattner [Fri, 21 Oct 2005 05:45:41 +0000 (05:45 +0000)]
My previous patch was too conservative.  Reject FP and void types, but do
allow pointer types.

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

19 years agoDon't generate operations that aren't yet supported
Nate Begeman [Fri, 21 Oct 2005 01:52:45 +0000 (01:52 +0000)]
Don't generate operations that aren't yet supported

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

19 years agoKill some now-dead code.
Nate Begeman [Fri, 21 Oct 2005 01:52:20 +0000 (01:52 +0000)]
Kill some now-dead code.

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

19 years agoFix a typo in the dag combiner, so that this can work on i64 targets
Nate Begeman [Fri, 21 Oct 2005 01:51:45 +0000 (01:51 +0000)]
Fix a typo in the dag combiner, so that this can work on i64 targets

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

19 years agobyte zap not immediate goodness
Andrew Lenharth [Fri, 21 Oct 2005 01:24:05 +0000 (01:24 +0000)]
byte zap not immediate goodness

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

19 years agoMake tblgen emit:
Chris Lattner [Fri, 21 Oct 2005 01:19:59 +0000 (01:19 +0000)]
Make tblgen emit:
tblgen: In ZAPNOTi: Cannot use 'IZAPX' in an input pattern!
for a bad pattern, instead of an ugly assertion.

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

19 years agoInvert the TargetLowering flag that controls divide by consant expansion.
Nate Begeman [Fri, 21 Oct 2005 00:02:42 +0000 (00:02 +0000)]
Invert the TargetLowering flag that controls divide by consant expansion.
Add a new flag to TargetLowering indicating if the target has really cheap
  signed division by powers of two, make ppc use it.  This will probably go
  away in the future.
Implement some more ISD::SDIV folds in the dag combiner
Remove now dead code in the x86 backend.

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

19 years agoInst cleanup. As a bonus, operands are in the correct order for cmovs. Expect new...
Andrew Lenharth [Thu, 20 Oct 2005 23:58:36 +0000 (23:58 +0000)]
Inst cleanup.  As a bonus, operands are in the correct order for cmovs.  Expect new stuff to pass in the JIT tonight

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

19 years agoUse a literal to define ineg instead of immzero
Chris Lattner [Thu, 20 Oct 2005 23:30:37 +0000 (23:30 +0000)]
Use a literal to define ineg instead of immzero

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

19 years agoFix a conditional so we don't access past the end of the range. Thanks to
Chris Lattner [Thu, 20 Oct 2005 22:50:10 +0000 (22:50 +0000)]
Fix a conditional so we don't access past the end of the range.  Thanks to
Andrew for bringing this to my attn.

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

19 years agoadded a few 1 operand form stuff. Seems to break regalloc on alpha. sigh
Andrew Lenharth [Thu, 20 Oct 2005 19:39:24 +0000 (19:39 +0000)]
added a few 1 operand form stuff.  Seems to break regalloc on alpha.  sigh

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

19 years agoadd cttz and ctpop
Andrew Lenharth [Thu, 20 Oct 2005 19:38:11 +0000 (19:38 +0000)]
add cttz and ctpop

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

19 years agoFix a couple bugs in the const div stuff where we'd generate MULHS/MULHU
Nate Begeman [Thu, 20 Oct 2005 17:45:03 +0000 (17:45 +0000)]
Fix a couple bugs in the const div stuff where we'd generate MULHS/MULHU
for types that aren't legal, and fail a divisor is less than zero
comparison, which would cause us to drop a subtract.

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

19 years agodon't use llabs with apparently VC++ doesn't have
Chris Lattner [Thu, 20 Oct 2005 17:01:00 +0000 (17:01 +0000)]
don't use llabs with apparently VC++ doesn't have

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

19 years agoFix order of eval problem from when I refactored this into a function.
Chris Lattner [Thu, 20 Oct 2005 16:56:40 +0000 (16:56 +0000)]
Fix order of eval problem from when I refactored this into a function.

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

19 years agoSounds good, finish the intop conversion.
Andrew Lenharth [Thu, 20 Oct 2005 14:42:48 +0000 (14:42 +0000)]
Sounds good, finish the intop conversion.

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

19 years agoAdd some more patterns for i64 on ppc
Nate Begeman [Thu, 20 Oct 2005 07:51:08 +0000 (07:51 +0000)]
Add some more patterns for i64 on ppc

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

19 years agoadd a new method, play around with some code.
Chris Lattner [Thu, 20 Oct 2005 07:39:25 +0000 (07:39 +0000)]
add a new method, play around with some code.

Fix a *bug* in the extendIntervalEndTo method.  In particular, if adding
[2:10) to an interval containing [0:2),[10:30), we produced [0:10),[10,30).
Which is not the most smart thing to do.  Now produce [0:30).

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

19 years agoadd a new method
Chris Lattner [Thu, 20 Oct 2005 07:37:59 +0000 (07:37 +0000)]
add a new method

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

19 years agoRefactor some code, pulling it out into a function. No functionality change.
Chris Lattner [Thu, 20 Oct 2005 06:06:30 +0000 (06:06 +0000)]
Refactor some code, pulling it out into a function.  No functionality change.

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

19 years agoDo NOT touch FP ops with LSR. This fixes a testcase Nate sent me from an
Chris Lattner [Thu, 20 Oct 2005 04:47:10 +0000 (04:47 +0000)]
Do NOT touch FP ops with LSR.  This fixes a testcase Nate sent me from an
inner loop like this:

LBB_RateConvertMono8AltiVec_2:  ; no_exit
        lis r2, ha16(.CPI_RateConvertMono8AltiVec_0)
        lfs f3, lo16(.CPI_RateConvertMono8AltiVec_0)(r2)
        fmr f3, f3
        fadd f0, f2, f0
        fadd f3, f0, f3
        fcmpu cr0, f3, f1
        bge cr0, LBB_RateConvertMono8AltiVec_2  ; no_exit

to an inner loop like this:

LBB_RateConvertMono8AltiVec_1:  ; no_exit
        fsub f2, f2, f1
        fcmpu cr0, f2, f1
        fmr f0, f2
        bge cr0, LBB_RateConvertMono8AltiVec_1  ; no_exit

Doh! good catch!

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

19 years agoAdd some pattern fragments to simplify the repetitive parts of the patterns
Chris Lattner [Thu, 20 Oct 2005 04:21:06 +0000 (04:21 +0000)]
Add some pattern fragments to simplify the repetitive parts of the patterns
for some common ops and use them for a few examples.  Andrew, if you like
this, feel free to convert the rest over, if you hate it, feel free to
revert.

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

19 years agosimplify this a bit by using immediates
Chris Lattner [Thu, 20 Oct 2005 03:57:03 +0000 (03:57 +0000)]
simplify this a bit by using immediates

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

19 years agoMove the target constant divide optimization up into the dag combiner, so
Nate Begeman [Thu, 20 Oct 2005 02:15:44 +0000 (02:15 +0000)]
Move the target constant divide optimization up into the dag combiner, so
that the nodes can be folded with other nodes, and we can not duplicate
code in every backend.  Alpha will probably want this too.

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

19 years agoEnable targets to say that integer divide is expensive, which will trigger
Nate Begeman [Thu, 20 Oct 2005 02:14:14 +0000 (02:14 +0000)]
Enable targets to say that integer divide is expensive, which will trigger
an upcoming optimization in the DAG Combiner.

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

19 years agoforgot this one
Andrew Lenharth [Thu, 20 Oct 2005 00:29:02 +0000 (00:29 +0000)]
forgot this one

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

19 years agoret 0; works, not much else
Andrew Lenharth [Thu, 20 Oct 2005 00:28:31 +0000 (00:28 +0000)]
ret 0; works, not much else

still lots of uglyness.
Maybe calls will come soon.
Fixing the return value of things will be necessary to make alpha work.

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

19 years agoThis fixes PR638:
John Criswell [Wed, 19 Oct 2005 20:07:15 +0000 (20:07 +0000)]
This fixes PR638:
Regression/CodeGen/Generic/2004-02-08-UnwindSupport.llx

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

19 years agoAdded InstrSchedClass to each of the PowerPC Instructions.
Jim Laskey [Wed, 19 Oct 2005 19:51:16 +0000 (19:51 +0000)]
Added InstrSchedClass to each of the PowerPC Instructions.

Note that when adding new instructions that you should refer to the table at the
bottom of PPCSchedule.td.

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

19 years agoMoved to Regression/Codegen/Generic.
John Criswell [Wed, 19 Oct 2005 18:52:52 +0000 (18:52 +0000)]
Moved to Regression/Codegen/Generic.

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

19 years agoThis is a generic test for all code generators. It originally came from
John Criswell [Wed, 19 Oct 2005 18:51:07 +0000 (18:51 +0000)]
This is a generic test for all code generators.  It originally came from
Regression/Codegen/X86.

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

19 years agoWrite patterns for the various shl and srl patterns that don't involve
Nate Begeman [Wed, 19 Oct 2005 18:42:01 +0000 (18:42 +0000)]
Write patterns for the various shl and srl patterns that don't involve
doing something clever.

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

19 years agoForce i386 code generation for an i386 specific test.
John Criswell [Wed, 19 Oct 2005 18:30:39 +0000 (18:30 +0000)]
Force i386 code generation for an i386 specific test.

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

19 years agoPush processor descriptions to the top of target and add command line info.
Jim Laskey [Wed, 19 Oct 2005 13:34:52 +0000 (13:34 +0000)]
Push processor descriptions to the top of target and add command line info.

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

19 years agoadd support for literal immediates in patterns to match, allowing us to
Chris Lattner [Wed, 19 Oct 2005 04:41:05 +0000 (04:41 +0000)]
add support for literal immediates in patterns to match, allowing us to
write things like this:

def : Pat<(add GPRC:$in, 12),
          (ADD12 GPRC:$in)>;

Andrew: if this isn't enough or doesn't work for you, please lemme know.

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

19 years agonow that tblgen is smarter, use integers directly. This should help Andrew too
Chris Lattner [Wed, 19 Oct 2005 04:32:04 +0000 (04:32 +0000)]
now that tblgen is smarter, use integers directly.  This should help Andrew too

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

19 years agoAdd basic support for integer constants in pattern results.
Chris Lattner [Wed, 19 Oct 2005 04:30:56 +0000 (04:30 +0000)]
Add basic support for integer constants in pattern results.

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

19 years agoFix some checking that was causing duraid to get a perplexing assertion
Chris Lattner [Wed, 19 Oct 2005 04:12:14 +0000 (04:12 +0000)]
Fix some checking that was causing duraid to get a perplexing assertion
instead of a happy error message

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

19 years agoAdd support for patterns that have physical registers in them. Testcase:
Chris Lattner [Wed, 19 Oct 2005 02:07:26 +0000 (02:07 +0000)]
Add support for patterns that have physical registers in them.  Testcase:

def : Pat<(trunc G8RC:$in),
          (OR8To4 G8RC:$in, X0)>;

Even though this doesn't make any sense on PPC :)

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

19 years agoAsserting here is to violent
Chris Lattner [Wed, 19 Oct 2005 01:55:23 +0000 (01:55 +0000)]
Asserting here is to violent

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

19 years agoteach ppc backend these are copies
Chris Lattner [Wed, 19 Oct 2005 01:50:36 +0000 (01:50 +0000)]
teach ppc backend these are copies

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

19 years agoMake this work with the internalize change
Chris Lattner [Wed, 19 Oct 2005 01:41:47 +0000 (01:41 +0000)]
Make this work with the internalize change

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

19 years agoConvert these cases to patterns
Chris Lattner [Wed, 19 Oct 2005 01:38:02 +0000 (01:38 +0000)]
Convert these cases to patterns

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

19 years agoNate wants to define 'Pat's which turn into instructions that don't have
Chris Lattner [Wed, 19 Oct 2005 01:27:22 +0000 (01:27 +0000)]
Nate wants to define 'Pat's which turn into instructions that don't have
patterns.  Certainly a logical request.

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

19 years agoWoo, it kinda works. We now generate this atrociously bad, but correct,
Nate Begeman [Wed, 19 Oct 2005 01:12:32 +0000 (01:12 +0000)]
Woo, it kinda works.  We now generate this atrociously bad, but correct,
code for long long foo(long long a, long long b) { return a + b; }

_foo:
        or r2, r3, r3
        or r3, r4, r4
        or r4, r5, r5
        or r5, r6, r6
        rldicr r2, r2, 32, 31
        rldicl r3, r3, 0, 32
        rldicr r4, r4, 32, 31
        rldicl r5, r5, 0, 32
        or r2, r3, r2
        or r3, r5, r4
        add r4, r3, r2
        rldicl r2, r4, 32, 32
        or r4, r4, r4
        or r3, r2, r2
        blr

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

19 years agoTestcase that crashes llvmgcc in type layout
Chris Lattner [Wed, 19 Oct 2005 00:52:21 +0000 (00:52 +0000)]
Testcase that crashes llvmgcc in type layout

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

19 years agoapply some tblgen majik to simplify the X register definitions
Chris Lattner [Wed, 19 Oct 2005 00:17:55 +0000 (00:17 +0000)]
apply some tblgen majik to simplify the X register definitions

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

19 years agoTeach Legalize how to do something with EXTRACT_ELEMENT when the type of
Nate Begeman [Wed, 19 Oct 2005 00:06:56 +0000 (00:06 +0000)]
Teach Legalize how to do something with EXTRACT_ELEMENT when the type of
the pair of elements is a legal type.

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

19 years agoMake a new reg class for 64 bit regs that aliases the 32 bit regs. This
Nate Begeman [Wed, 19 Oct 2005 00:05:37 +0000 (00:05 +0000)]
Make a new reg class for 64 bit regs that aliases the 32 bit regs.  This
will have to tide us over until we get real subreg support, but it prevents
the PrologEpilogInserter from spilling 8 byte GPRs on a G4 processor.

Add some initial support for TRUNCATE and ANY_EXTEND, but they don't
currently work due to issues with ScheduleDAG.  Something wll have to be
figured out.

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