oota-llvm.git
18 years agoadd very simple support for the BIT_CONVERT node
Chris Lattner [Fri, 23 Dec 2005 00:16:34 +0000 (00:16 +0000)]
add very simple support for the BIT_CONVERT node

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

18 years agoadd a new node
Chris Lattner [Fri, 23 Dec 2005 00:15:59 +0000 (00:15 +0000)]
add a new node

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

18 years agoRevert previous patch. Additional tests fail.
Reid Spencer [Thu, 22 Dec 2005 21:46:37 +0000 (21:46 +0000)]
Revert previous patch. Additional tests fail.

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

18 years agoclean up .td file by using evan's new FLAG thing
Chris Lattner [Thu, 22 Dec 2005 21:18:39 +0000 (21:18 +0000)]
clean up .td file by using evan's new FLAG thing

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

18 years agoremove a dead node
Chris Lattner [Thu, 22 Dec 2005 21:16:35 +0000 (21:16 +0000)]
remove a dead node

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

18 years agoremove dead code
Chris Lattner [Thu, 22 Dec 2005 21:16:08 +0000 (21:16 +0000)]
remove dead code

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

18 years agofix handling of weak linkage
Chris Lattner [Thu, 22 Dec 2005 21:15:17 +0000 (21:15 +0000)]
fix handling of weak linkage

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

18 years agoFix PR409:
Reid Spencer [Thu, 22 Dec 2005 21:07:29 +0000 (21:07 +0000)]
Fix PR409:
Implement the suggested check to ensure that out-of-range float constants
don't get accepted by LLVM accidentally. Adjust the supporting test cases
as well.

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

18 years agosilence some bogus gcc warnings
Chris Lattner [Thu, 22 Dec 2005 20:37:36 +0000 (20:37 +0000)]
silence some bogus gcc warnings

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

18 years agoFor PR351:
Reid Spencer [Thu, 22 Dec 2005 20:02:55 +0000 (20:02 +0000)]
For PR351:
Generally, remove use of fork/exec from bugpoint in favor of the portable
sys::Program::ExecuteAndWait method. This change requires two new options
to bugpoint to tell it that it is running in "child" mode. In this mode,
it reads its input and runs the passes. The result code signals to the
parent instance of bugpoint what happened (success, fail, crash).

This change should make bugpoint usable on Win32 systems.

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

18 years agoFor PR351:
Reid Spencer [Thu, 22 Dec 2005 20:00:16 +0000 (20:00 +0000)]
For PR351:
* Allow the ExecuteAndWait to return negative values if a signal is
  detected as the reason for the child termination. This is needed to
  support bugpoint detecting bad things in its child processes.

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

18 years agoFix test/Regression/Other/2002-01-31-CallGraph.ll after the recent callgraph
Chris Lattner [Thu, 22 Dec 2005 19:26:06 +0000 (19:26 +0000)]
Fix test/Regression/Other/2002-01-31-CallGraph.ll after the recent callgraph
rework.

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

18 years agomove some random notes out of my email into someplace useful
Chris Lattner [Thu, 22 Dec 2005 17:19:28 +0000 (17:19 +0000)]
move some random notes out of my email into someplace useful

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

18 years agothis is a hack, which may or may not hang around. In short:
Duraid Madina [Thu, 22 Dec 2005 13:29:14 +0000 (13:29 +0000)]
this is a hack, which may or may not hang around. In short:

whimper out of doing things the Right Way, and hack up a generic
'BRCALL' instruction, that gets generated when calls are lowered.
This gets selected by hand in the DAG isel, where it gets turned
into real (i.e. in tablegen) br.call instructions.

BUG: this dies on void calls, but seems to work otherwise?

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

18 years agowe can't do this directly in lowering, so we need this case
Duraid Madina [Thu, 22 Dec 2005 07:14:45 +0000 (07:14 +0000)]
we can't do this directly in lowering, so we need this case

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

18 years agooops, back this out
Duraid Madina [Thu, 22 Dec 2005 07:13:51 +0000 (07:13 +0000)]
oops, back this out

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

18 years agoi need to do this to take over the earth
Duraid Madina [Thu, 22 Dec 2005 07:02:51 +0000 (07:02 +0000)]
i need to do this to take over the earth

when I take over the earth, sabre will be happy because i'll stop asking
him silly questions!!!!!!

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

18 years agowe can't all have brains now, can we
Duraid Madina [Thu, 22 Dec 2005 06:41:39 +0000 (06:41 +0000)]
we can't all have brains now, can we

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

18 years agothis should take care of calls to varadic functions, but it doesn.,t
Duraid Madina [Thu, 22 Dec 2005 06:39:57 +0000 (06:39 +0000)]
this should take care of calls to varadic functions, but it doesn.,t
BUG: calling printf(string, float) will load the float into the wrong
register, completely forget about loading the string, etce

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

18 years agowe need to emit the getf.d instruction in lowering, so add it
Duraid Madina [Thu, 22 Dec 2005 06:38:38 +0000 (06:38 +0000)]
we need to emit the getf.d instruction in lowering, so add it
to IA64ISD

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

18 years agocredit where credit is due
Chris Lattner [Thu, 22 Dec 2005 06:09:08 +0000 (06:09 +0000)]
credit where credit is due

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

18 years agoSeparate the call graph implementation from its interface. This implements
Chris Lattner [Thu, 22 Dec 2005 06:07:52 +0000 (06:07 +0000)]
Separate the call graph implementation from its interface.  This implements
the rough idea sketched out in http://nondot.org/sabre/LLVMNotes/CallGraphClass.txt,
allowing new spiffy implementations of the callgraph interface to be built.

Many thanks to Saem Ghani for contributing this!

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

18 years agoThe 81st column doesn't like code in it.
Chris Lattner [Thu, 22 Dec 2005 05:23:45 +0000 (05:23 +0000)]
The 81st column doesn't like code in it.

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

18 years agoI shoulda done this a *long* time ago (tm): implement calls properly,
Duraid Madina [Thu, 22 Dec 2005 04:07:40 +0000 (04:07 +0000)]
I shoulda done this a *long* time ago (tm): implement calls properly,
i.e. r1/r12/rp are saved/restored regardless of scheduling/luck

TODO: calls to external symbols, indirect (function descriptor) calls,
      performance (we're being paranoid right now)

BUG: the code for handling calls to vararg functions breaks if FP
args are passed (this will make printf() go haywire so a bunch of
tests will fail)

BUG: this seems to trigger some legalize nastiness

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

18 years agokill SelectCALL() in the DAG isel, we handle this in lowering now, like
Duraid Madina [Thu, 22 Dec 2005 03:58:17 +0000 (03:58 +0000)]
kill SelectCALL() in the DAG isel, we handle this in lowering now, like
SPARCv8. (we copy sparcv8's workaround for tablegen not being nice about
ISD::CALL/TAILCALL)

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

18 years agoFix documentation for the AlarmSetup function.
Reid Spencer [Thu, 22 Dec 2005 03:57:15 +0000 (03:57 +0000)]
Fix documentation for the AlarmSetup function.

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

18 years agoupdate tablegen files - nothing to see here
Duraid Madina [Thu, 22 Dec 2005 03:56:03 +0000 (03:56 +0000)]
update tablegen files - nothing to see here

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

18 years agoFor PR351:
Reid Spencer [Thu, 22 Dec 2005 03:31:26 +0000 (03:31 +0000)]
For PR351:
Move the system dependent portion to lib/System/*/Alarm.inc. This makes the
SlowOperationInformer platform independent.

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

18 years agoImplement a generic polled Alarm function. This merely removes the system
Reid Spencer [Thu, 22 Dec 2005 03:23:46 +0000 (03:23 +0000)]
Implement a generic polled Alarm function. This merely removes the system
dependent portion of the lib/Support/SlowOperationTimer code into the
lib/System implementation where it can be ported to different platforms.

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

18 years agoAttempt to fix a crash on WIN32.
Evan Cheng [Thu, 22 Dec 2005 02:35:21 +0000 (02:35 +0000)]
Attempt to fix a crash on WIN32.

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

18 years agoBye bye HACKTROCITY.
Evan Cheng [Thu, 22 Dec 2005 02:26:21 +0000 (02:26 +0000)]
Bye bye HACKTROCITY.

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

18 years agoAdded special flag node FLAG.
Evan Cheng [Thu, 22 Dec 2005 02:25:14 +0000 (02:25 +0000)]
Added special flag node FLAG.

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

18 years ago* Added support for FLAG - a special nameless flag register. Can be used as
Evan Cheng [Thu, 22 Dec 2005 02:24:50 +0000 (02:24 +0000)]
* Added support for FLAG - a special nameless flag register. Can be used as
  either an operand or a result.
* Fixed some more flag / chain bugs.

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

18 years agoFor PR678:
Reid Spencer [Thu, 22 Dec 2005 02:08:30 +0000 (02:08 +0000)]
For PR678:
* Make it possible to pass a fourth argument to the CHECK_PROGRAM_SANITY
  macro that controls whether a non-sane program generates an error or
  a warning.

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

18 years agoImplement PR679:
Reid Spencer [Thu, 22 Dec 2005 01:50:56 +0000 (01:50 +0000)]
Implement PR679:
* Changed the -rpath option from cl::opt to cl::list
* Changed the interface to GenerateNative to take a std::vector<std::string>
  instead of just a std::string
* Changed GenerateNative to generate multiple -Wl,-rpath, options to be
  passed to gcc.

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

18 years agoAdd new files to Visual Studio.
Jeff Cohen [Thu, 22 Dec 2005 01:50:11 +0000 (01:50 +0000)]
Add new files to Visual Studio.

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

18 years agoOh oh... Unix is case sensitive.
Jeff Cohen [Thu, 22 Dec 2005 01:46:59 +0000 (01:46 +0000)]
Oh oh...  Unix is case sensitive.

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

18 years agoMake it compile with VC++.
Jeff Cohen [Thu, 22 Dec 2005 01:44:51 +0000 (01:44 +0000)]
Make it compile with VC++.

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

18 years agoAdd an eol at the end to shut gcc sup.
Reid Spencer [Thu, 22 Dec 2005 01:41:00 +0000 (01:41 +0000)]
Add an eol at the end to shut gcc sup.

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

18 years agoAdd an eol at the end to shut gcc up.
Reid Spencer [Thu, 22 Dec 2005 01:40:06 +0000 (01:40 +0000)]
Add an eol at the end to shut gcc up.

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

18 years agoSome simple cleanups:
Reid Spencer [Wed, 21 Dec 2005 23:17:06 +0000 (23:17 +0000)]
Some simple cleanups:
1. When srcdir == objdir have "spotless" say that it isn't supported in
   that mode rather than just let make say "no such target"
2. Minor doc cleanups
3. Fix the double rebuild problem with yacc files. A missing dependency
   caused parallel builds to skip building the .cpp file after the .cpp
   file was regenerated by bison.

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

18 years agoAdded TargetLowering::isMaskedValueZeroForTargetNode() declaration.
Evan Cheng [Wed, 21 Dec 2005 23:15:41 +0000 (23:15 +0000)]
Added TargetLowering::isMaskedValueZeroForTargetNode() declaration.

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

18 years agoLefted out TargetLowering::
Evan Cheng [Wed, 21 Dec 2005 23:14:54 +0000 (23:14 +0000)]
Lefted out TargetLowering::

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

18 years ago* Fix a GlobalAddress lowering bug.
Evan Cheng [Wed, 21 Dec 2005 23:05:39 +0000 (23:05 +0000)]
* Fix a GlobalAddress lowering bug.
* Teach DAG combiner about X86ISD::SETCC by adding a TargetLowering hook.

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

18 years agoOops. Accidentally deleted RET pattern. It's still needed for return void;
Evan Cheng [Wed, 21 Dec 2005 22:22:16 +0000 (22:22 +0000)]
Oops. Accidentally deleted RET pattern. It's still needed for return void;

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

18 years agoDisengage DEBUG_LOC from non-PPC targets.
Jim Laskey [Wed, 21 Dec 2005 20:51:37 +0000 (20:51 +0000)]
Disengage DEBUG_LOC from non-PPC targets.

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

18 years agoSync up the project with my tweaks.
Jim Laskey [Wed, 21 Dec 2005 20:47:34 +0000 (20:47 +0000)]
Sync up the project with my tweaks.

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

18 years ago* Added support for X86 RET with an additional operand to specify number of
Evan Cheng [Wed, 21 Dec 2005 20:21:51 +0000 (20:21 +0000)]
* Added support for X86 RET with an additional operand to specify number of
bytes to pop off stack.
* Added support for X86 SETCC.

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

18 years agoAllows instructions which no explicit operands. e.g. X86 RET which has but
Evan Cheng [Wed, 21 Dec 2005 20:20:49 +0000 (20:20 +0000)]
Allows instructions which no explicit operands. e.g. X86 RET which has but
an implicit flag operand.

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

18 years agoadd dwarfwriter to the xcode project
Chris Lattner [Wed, 21 Dec 2005 19:51:24 +0000 (19:51 +0000)]
add dwarfwriter to the xcode project

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

18 years agoStart of Dwarf framework.
Jim Laskey [Wed, 21 Dec 2005 19:48:16 +0000 (19:48 +0000)]
Start of Dwarf framework.

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

18 years agoOops llvm namespace.
Jim Laskey [Wed, 21 Dec 2005 19:46:32 +0000 (19:46 +0000)]
Oops llvm namespace.

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

18 years agoStart of Dwarf framework code.
Jim Laskey [Wed, 21 Dec 2005 19:44:40 +0000 (19:44 +0000)]
Start of Dwarf framework code.

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

18 years agomake sure to relegalize all cases
Chris Lattner [Wed, 21 Dec 2005 19:40:42 +0000 (19:40 +0000)]
make sure to relegalize all cases

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

18 years agoenable the gep isel opt
Chris Lattner [Wed, 21 Dec 2005 19:36:36 +0000 (19:36 +0000)]
enable the gep isel opt

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

18 years agoRegenerate
Chris Lattner [Wed, 21 Dec 2005 18:31:50 +0000 (18:31 +0000)]
Regenerate

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

18 years agoallow logical operators on packed integral types
Chris Lattner [Wed, 21 Dec 2005 18:31:29 +0000 (18:31 +0000)]
allow logical operators on packed integral types

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

18 years agoGet logical operations to like packed types, allow BinOp::getNot to create
Chris Lattner [Wed, 21 Dec 2005 18:22:19 +0000 (18:22 +0000)]
Get logical operations to like packed types, allow BinOp::getNot to create
the right vector of -1's as its operand.

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

18 years agofix a bug I introduced that broke recursive expansion of nodes (e.g. scalarizing...
Chris Lattner [Wed, 21 Dec 2005 18:02:52 +0000 (18:02 +0000)]
fix a bug I introduced that broke recursive expansion of nodes (e.g. scalarizing vectors)

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

18 years agoregenerate
Chris Lattner [Wed, 21 Dec 2005 17:53:23 +0000 (17:53 +0000)]
regenerate

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

18 years agoImplement Regression/Assembler/2005-12-21-ZeroInitVector.ll
Chris Lattner [Wed, 21 Dec 2005 17:53:02 +0000 (17:53 +0000)]
Implement Regression/Assembler/2005-12-21-ZeroInitVector.ll

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

18 years agonew testcase
Chris Lattner [Wed, 21 Dec 2005 17:52:42 +0000 (17:52 +0000)]
new testcase

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

18 years agoadd some nodes, forgot to commit this last night :(
Chris Lattner [Wed, 21 Dec 2005 16:22:46 +0000 (16:22 +0000)]
add some nodes, forgot to commit this last night :(

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

18 years agoThis was meant to go in
Chris Lattner [Wed, 21 Dec 2005 07:50:26 +0000 (07:50 +0000)]
This was meant to go in

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

18 years agoRewrite FP stackifier support in the X86InstrInfo.td file, splitting patterns
Chris Lattner [Wed, 21 Dec 2005 07:47:04 +0000 (07:47 +0000)]
Rewrite FP stackifier support in the X86InstrInfo.td file, splitting patterns
that were overloaded to work before and after the stackifier runs.  With the
new clean world, it is possible to write patterns for these instructions: woo!

This also adds a few simple patterns here and there, though there are a lot
still missing.  These should be easy to add though. :)

See the comments under "Floating Point Stack Support" for more details on
the new world order.

This patch as absolutely no effect on the generated code, woo!

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

18 years agoWrap some long lines: no functionality change
Chris Lattner [Wed, 21 Dec 2005 05:34:58 +0000 (05:34 +0000)]
Wrap some long lines: no functionality change

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

18 years agoEliminate some GCC warnings from the generated code
Chris Lattner [Wed, 21 Dec 2005 05:31:05 +0000 (05:31 +0000)]
Eliminate some GCC warnings from the generated code

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

18 years agoremove dead code
Chris Lattner [Wed, 21 Dec 2005 05:27:51 +0000 (05:27 +0000)]
remove dead code

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

18 years agoDocument the new -post-link-opts option.
Reid Spencer [Wed, 21 Dec 2005 05:13:06 +0000 (05:13 +0000)]
Document the new -post-link-opts option.

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

18 years agonew testcase, fails on X86 and probably others
Chris Lattner [Wed, 21 Dec 2005 05:09:57 +0000 (05:09 +0000)]
new testcase, fails on X86 and probably others

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

18 years agoImplement PR512:
Reid Spencer [Wed, 21 Dec 2005 05:03:23 +0000 (05:03 +0000)]
Implement PR512:
This patch adds a -post-link-opts option to llvm-ld which allows an arbitrary
program to optimize bytecode after linking. The program is passed two file
names. The first is the input (linked bytecode) the second is where it must
place its output (presumably after optimizing). If the output file is bytecode,
it is used as a substitute for the input. This will allow things like poolalloc
to be written as a separate program instead of a loadable module or built into
LLVM.

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

18 years agoDocument the new --enable-debug-runtime configure option.
Reid Spencer [Wed, 21 Dec 2005 03:46:45 +0000 (03:46 +0000)]
Document the new --enable-debug-runtime configure option.

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

18 years agoImplement fix for PR471:
Reid Spencer [Wed, 21 Dec 2005 03:31:53 +0000 (03:31 +0000)]
Implement fix for PR471:
* Add --enable-debug-runtime option, defaults to disabled
* Pass the new config var, DEBUG_RUNTIME, to Makefiles
* Don't use -Wa,-strip-debug if debug-runtime is enabled

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

18 years agoLower ConstantAggregateZero into zeros
Chris Lattner [Wed, 21 Dec 2005 02:43:26 +0000 (02:43 +0000)]
Lower ConstantAggregateZero into zeros

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

18 years agoRemove ISD::RET select code. Now tblgen'd.
Evan Cheng [Wed, 21 Dec 2005 02:41:57 +0000 (02:41 +0000)]
Remove ISD::RET select code. Now tblgen'd.

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

18 years ago* Added lowering hook for external weak global address. It inserts a load
Evan Cheng [Wed, 21 Dec 2005 02:39:21 +0000 (02:39 +0000)]
* Added lowering hook for external weak global address. It inserts a load
  for Darwin.
* Added lowering hook for ISD::RET. It inserts CopyToRegs for the return
  value (or store / fld / copy to ST(0) for floating point value). This
  eliminate the need to write C++ code to handle RET with variable number
  of operands.

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

18 years agoDon't emit a null terminator, nor anything after it, to the ctor/dtor list
Chris Lattner [Wed, 21 Dec 2005 01:17:37 +0000 (01:17 +0000)]
Don't emit a null terminator, nor anything after it, to the ctor/dtor list

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

18 years agoSSE2 floating point load / store patterns. SSE2 fp to int conversion patterns.
Evan Cheng [Tue, 20 Dec 2005 22:59:51 +0000 (22:59 +0000)]
SSE2 floating point load / store patterns. SSE2 fp to int conversion patterns.

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

18 years agoFlip the meaning of FPContractions to reflect Requires<[]> change.
Evan Cheng [Tue, 20 Dec 2005 20:08:53 +0000 (20:08 +0000)]
Flip the meaning of FPContractions to reflect Requires<[]> change.

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

18 years agoFix the semantic of Requires<[cond]> to mean if (!cond) goto PXXFail;
Evan Cheng [Tue, 20 Dec 2005 20:08:01 +0000 (20:08 +0000)]
Fix the semantic of Requires<[cond]> to mean if (!cond) goto PXXFail;

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

18 years agoThis ugly patch works around a GCC bug where it is compiling SelectCode to
Chris Lattner [Tue, 20 Dec 2005 19:41:03 +0000 (19:41 +0000)]
This ugly patch works around a GCC bug where it is compiling SelectCode to
use too much stack space, overflowing the stack for large functions.  Instead
of emitting new SDOperands in each match block, we emit some common ones at
the top of SelectCode then reuse them when possible.

This reduces the stack size of SelectCode from 28K to 21K.  Note that GCC
compiles it to 512 bytes :-/

I've filed GCC PR 25505 to track this.

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

18 years agoRun lower-switch after lower-invoke.
Chris Lattner [Tue, 20 Dec 2005 08:00:11 +0000 (08:00 +0000)]
Run lower-switch after lower-invoke.

Only run lower-allocations and lower-select for the simple isel

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

18 years agoReserve G1 for frame offset stuff and use it to handle large stack frames.
Chris Lattner [Tue, 20 Dec 2005 07:56:31 +0000 (07:56 +0000)]
Reserve G1 for frame offset stuff and use it to handle large stack frames.
For example, instead of emitting this:

test:
        save -40112, %o6, %o6   ;; imm too large
        add %i6, -40016, %o0    ;; imm too large
        call caller
        nop
        restore %g0, %g0, %g0
        retl
        nop

emit this:

test:
        sethi 4194264, %g1
        or %g1, 848, %g1
        save %o6, %g1, %o6
        sethi 4194264, %g1
        add %g1, %i6, %g1
        add %i1, 944, %o0
        call caller
        nop
        restore %g0, %g0, %g0
        retl
        nop

which doesn't cause the assembler to barf.

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

18 years agoAdded X86 readport patterns.
Evan Cheng [Tue, 20 Dec 2005 07:38:38 +0000 (07:38 +0000)]
Added X86 readport patterns.

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

18 years agoNow support instructions with implicit write to non-flag registers.
Evan Cheng [Tue, 20 Dec 2005 07:37:41 +0000 (07:37 +0000)]
Now support instructions with implicit write to non-flag registers.

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

18 years agoAdded a hook to print out names of target specific DAG nodes.
Evan Cheng [Tue, 20 Dec 2005 06:22:03 +0000 (06:22 +0000)]
Added a hook to print out names of target specific DAG nodes.

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

18 years agoAdded a break that I meant to include originally, for efficiency. Basically
Patrick Meredith [Tue, 20 Dec 2005 02:03:23 +0000 (02:03 +0000)]
Added a break that I meant to include originally, for efficiency.  Basically
it keeps it from trying to add the same node to the node set
over and over if it matches multiple given patterns.  Also in cases where there
are a lot of patterns to be matched, and it matches an early one, this
will make the script run slightly faster.  It's more there because it logically
should be, than anything else, I mean, Python is never going to be fast ;-)

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

18 years agoFix a nasty latent bug in the legalizer that was triggered by my patch
Chris Lattner [Tue, 20 Dec 2005 00:53:54 +0000 (00:53 +0000)]
Fix a nasty latent bug in the legalizer that was triggered by my patch
last night, breaking crafty and twolf.  Make sure that the newly found
legal nodes are themselves not re-legalized until the next iteration.

Also, since this functionality exists now, we can reduce number of legalizer
iterations by depending on this behavior instead of having to misuse 'do
another iteration' to get the same effect.

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

18 years agoPattern-match return. Includes gross hack!
Nate Begeman [Tue, 20 Dec 2005 00:26:01 +0000 (00:26 +0000)]
Pattern-match return.  Includes gross hack!

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

18 years agoLefted out a fix in the previous check in.
Evan Cheng [Tue, 20 Dec 2005 00:06:17 +0000 (00:06 +0000)]
Lefted out a fix in the previous check in.

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

18 years agoFix a couple of the FIXMEs, thanks to suggestion from Chris. This allows
Nate Begeman [Mon, 19 Dec 2005 23:40:42 +0000 (23:40 +0000)]
Fix a couple of the FIXMEs, thanks to suggestion from Chris.  This allows
us to load and store vectors directly at a pointer (offset of zero) by
using r0 as the base register.  This also requires some asm printer work
to satisfy the darwin assembler.

For
void %foo(<4 x float> * %a) {
entry:
  %tmp1 = load <4 x float> * %a;
  %tmp2 = add <4 x float> %tmp1, %tmp1
  store <4 x float> %tmp2, <4 x float> *%a
  ret void
}

We now produce:
_foo:
        lvx v0, 0, r3
        vaddfp v0, v0, v0
        stvx v0, 0, r3
        blr

Instead of:
_foo:
        li r2, 0
        lvx v0, r2, r3
        vaddfp v0, v0, v0
        stvx v0, r2, r3
        blr

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

18 years agoConvert load/store over to being pattern matched
Nate Begeman [Mon, 19 Dec 2005 23:25:09 +0000 (23:25 +0000)]
Convert load/store over to being pattern matched

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

18 years agoX86 conditional branch support.
Evan Cheng [Mon, 19 Dec 2005 23:12:38 +0000 (23:12 +0000)]
X86 conditional branch support.

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

18 years agoPrint out opcode number if it's an unknown target node.
Evan Cheng [Mon, 19 Dec 2005 23:11:49 +0000 (23:11 +0000)]
Print out opcode number if it's an unknown target node.

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

18 years agoFix another bug related to chain / flag.
Evan Cheng [Mon, 19 Dec 2005 22:40:04 +0000 (22:40 +0000)]
Fix another bug related to chain / flag.

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

18 years agoIt's essential we clear CodeGenMap after isel every basic block!
Evan Cheng [Mon, 19 Dec 2005 22:36:02 +0000 (22:36 +0000)]
It's essential we clear CodeGenMap after isel every basic block!

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

18 years agoFix a case where the DAG Combiner would accidentally CSE flag-producing nodes,
Chris Lattner [Mon, 19 Dec 2005 22:21:21 +0000 (22:21 +0000)]
Fix a case where the DAG Combiner would accidentally CSE flag-producing nodes,
creating graphs that cannot be scheduled.

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

18 years agoAdded the llvm-kernel project to the list of automatically configured
John Criswell [Mon, 19 Dec 2005 20:27:24 +0000 (20:27 +0000)]
Added the llvm-kernel project to the list of automatically configured
projects.

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

18 years agoPrefix DSA specific options with dsa.
John Criswell [Mon, 19 Dec 2005 20:14:38 +0000 (20:14 +0000)]
Prefix DSA specific options with dsa.
Make the dsa-alloc-list and dsa-free-list options hidden.

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

18 years agoAdded an option to specify the names of heap freeing functions.
John Criswell [Mon, 19 Dec 2005 19:54:23 +0000 (19:54 +0000)]
Added an option to specify the names of heap freeing functions.

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