oota-llvm.git
18 years agoAdd a helper method for running static ctors/dtors in the module.
Chris Lattner [Wed, 8 Mar 2006 18:42:46 +0000 (18:42 +0000)]
Add a helper method for running static ctors/dtors in the module.

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

18 years agoadd a new helper method.
Chris Lattner [Wed, 8 Mar 2006 18:39:13 +0000 (18:39 +0000)]
add a new helper method.

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

18 years agoadd a new helper method
Chris Lattner [Wed, 8 Mar 2006 18:38:51 +0000 (18:38 +0000)]
add a new helper method

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

18 years agoGet rid of the multiple copies of getStringValue. Now a Constant:: method.
Jim Laskey [Wed, 8 Mar 2006 18:11:07 +0000 (18:11 +0000)]
Get rid of the multiple copies of getStringValue.  Now a Constant:: method.

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

18 years agodoo de doo
Duraid Madina [Wed, 8 Mar 2006 06:18:46 +0000 (06:18 +0000)]
doo de doo

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

18 years agoSplit the priority function computation and priority queue management out
Chris Lattner [Wed, 8 Mar 2006 05:18:27 +0000 (05:18 +0000)]
Split the priority function computation and priority queue management out
of the ScheduleDAGList class into a new SchedulingPriorityQueue class.

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

18 years agoswitch from an explicitly managed list of SUnits to a simple vector of sunits
Chris Lattner [Wed, 8 Mar 2006 04:54:34 +0000 (04:54 +0000)]
switch from an explicitly managed list of SUnits to a simple vector of sunits

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

18 years agoShrinkify some fields, fit to 80 columns
Chris Lattner [Wed, 8 Mar 2006 04:41:06 +0000 (04:41 +0000)]
Shrinkify some fields, fit to 80 columns

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

18 years agorevert the previous patch, didn't mean to check it in yet
Chris Lattner [Wed, 8 Mar 2006 04:39:05 +0000 (04:39 +0000)]
revert the previous patch, didn't mean to check it in yet

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

18 years agoremove "Slot", it is dead
Chris Lattner [Wed, 8 Mar 2006 04:37:58 +0000 (04:37 +0000)]
remove "Slot", it is dead

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

18 years agoChange the interface for getting a target HazardRecognizer to be more clean.
Chris Lattner [Wed, 8 Mar 2006 04:25:59 +0000 (04:25 +0000)]
Change the interface for getting a target HazardRecognizer to be more clean.

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

18 years agolibstdc++-v3 was failing to build. Needed to handle composite types with empty
Jim Laskey [Wed, 8 Mar 2006 02:07:02 +0000 (02:07 +0000)]
libstdc++-v3 was failing to build.  Needed to handle composite types with empty
members (running into a zero initializer.)

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

18 years agoFix a miscompilation of 188.ammp with the new CFE. 188.ammp is accessing
Chris Lattner [Wed, 8 Mar 2006 01:05:29 +0000 (01:05 +0000)]
Fix a miscompilation of 188.ammp with the new CFE.  188.ammp is accessing
arrays out of range in a horrible way, but we shouldn't break it anyway.
Details in the comments.

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

18 years agoadd a note
Chris Lattner [Wed, 8 Mar 2006 00:25:47 +0000 (00:25 +0000)]
add a note

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

18 years agoX86ISD::REP_STOS and X86ISD::REP_MOVS now produces a flag.
Evan Cheng [Tue, 7 Mar 2006 23:34:23 +0000 (23:34 +0000)]
X86ISD::REP_STOS and X86ISD::REP_MOVS now produces a flag.

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

18 years agoUse rep/stosl; and Count 0x3; rep/stosb for memset with 4 byte aligned dest.
Evan Cheng [Tue, 7 Mar 2006 23:29:39 +0000 (23:29 +0000)]
Use rep/stosl; and Count 0x3; rep/stosb for memset with 4 byte aligned dest.
and variable value.
Similarly for memcpy.

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

18 years agoTwo things:
Chris Lattner [Tue, 7 Mar 2006 22:58:23 +0000 (22:58 +0000)]
Two things:
1. Don't emit debug info, or other llvm.metadata to the .cbe.c file.
2. Mark static ctors/dtors as such, so that bugpoint works on C++ code
   compiled with the new CFE.

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

18 years agonew testcase that should have been added long ago.
Chris Lattner [Tue, 7 Mar 2006 22:33:00 +0000 (22:33 +0000)]
new testcase that should have been added long ago.

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

18 years agoUse "llvm.metadata" section for debug globals. Filter out these globals in the
Jim Laskey [Tue, 7 Mar 2006 22:00:35 +0000 (22:00 +0000)]
Use "llvm.metadata" section for debug globals.  Filter out these globals in the
asm printer.

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

18 years agoSwitch to using a numeric id for anchors.
Jim Laskey [Tue, 7 Mar 2006 20:53:47 +0000 (20:53 +0000)]
Switch to using a numeric id for anchors.

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

18 years agoFix ConstantMerge/2006-03-07-DontMergeDiffSections.ll, a problem Jim
Chris Lattner [Tue, 7 Mar 2006 17:56:59 +0000 (17:56 +0000)]
Fix ConstantMerge/2006-03-07-DontMergeDiffSections.ll, a problem Jim
hypotheticalized about, where we would incorrectly merge two globals in
different sections.

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

18 years agonew testcase
Chris Lattner [Tue, 7 Mar 2006 17:56:31 +0000 (17:56 +0000)]
new testcase

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

18 years agoadd another missing store.
Chris Lattner [Tue, 7 Mar 2006 16:26:48 +0000 (16:26 +0000)]
add another missing store.

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

18 years agoadd a couple more load/store instrs, add a newline to the end of file.
Chris Lattner [Tue, 7 Mar 2006 16:19:46 +0000 (16:19 +0000)]
add a couple more load/store instrs, add a newline to the end of file.

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

18 years agoBitfield support.
Jim Laskey [Tue, 7 Mar 2006 15:51:33 +0000 (15:51 +0000)]
Bitfield support.

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

18 years agoDon't generate silly matching code like this:
Evan Cheng [Tue, 7 Mar 2006 08:31:27 +0000 (08:31 +0000)]
Don't generate silly matching code like this:

 if (N1.getOpcode() == ISD::ADD &&
     ...)
   if (... &&
       (N1.getNumOperands() == 1 || !isNonImmUse(N1.Val, N10.Val))) &&
       ...)

TableGen knows N1 must have more than one operand.

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

18 years agoThis kinda sorta implements "things that have to lead a dispatch group".
Nate Begeman [Tue, 7 Mar 2006 08:30:27 +0000 (08:30 +0000)]
This kinda sorta implements "things that have to lead a dispatch group".

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

18 years agoadd some new instructions to the classifier. With this, we correctly insert
Chris Lattner [Tue, 7 Mar 2006 07:14:55 +0000 (07:14 +0000)]
add some new instructions to the classifier.  With this, we correctly insert
a nop into Freebench/neural, which speeds it up from 136->129s (~5.4%).

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

18 years agoadd some comments that describe what we model
Chris Lattner [Tue, 7 Mar 2006 06:44:19 +0000 (06:44 +0000)]
add some comments that describe what we model

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

18 years agoImplement a very very simple hazard recognizer for LSU rejects and ctr set/read
Chris Lattner [Tue, 7 Mar 2006 06:32:48 +0000 (06:32 +0000)]
Implement a very very simple hazard recognizer for LSU rejects and ctr set/read
flushes

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

18 years agoFix some formatting, when looking for hazards, prefer target nodes over
Chris Lattner [Tue, 7 Mar 2006 05:40:43 +0000 (05:40 +0000)]
Fix some formatting, when looking for hazards, prefer target nodes over
things like copyfromreg.

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

18 years agoadd a note
Chris Lattner [Tue, 7 Mar 2006 04:42:59 +0000 (04:42 +0000)]
add a note

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

18 years agoKeep VC++ building.
Jeff Cohen [Tue, 7 Mar 2006 02:58:13 +0000 (02:58 +0000)]
Keep VC++ building.

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

18 years agoadd a note
Chris Lattner [Tue, 7 Mar 2006 02:46:26 +0000 (02:46 +0000)]
add a note

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

18 years ago- Emit subsections_via_symbols for Darwin.
Evan Cheng [Tue, 7 Mar 2006 02:23:26 +0000 (02:23 +0000)]
- Emit subsections_via_symbols for Darwin.
- Conditionalize Dwarf debugging output (Darwin only for now).

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

18 years agoEnable Dwarf debugging info.
Evan Cheng [Tue, 7 Mar 2006 02:02:57 +0000 (02:02 +0000)]
Enable Dwarf debugging info.

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

18 years agoTeach the alignment handling code to look through constant expr casts and GEPs
Chris Lattner [Tue, 7 Mar 2006 01:28:57 +0000 (01:28 +0000)]
Teach the alignment handling code to look through constant expr casts and GEPs

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

18 years agonew regression test
Chris Lattner [Mon, 6 Mar 2006 23:52:37 +0000 (23:52 +0000)]
new regression test

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

18 years agoTeach instcombine to increase the alignment of memset/memcpy/memmove when
Chris Lattner [Mon, 6 Mar 2006 20:18:44 +0000 (20:18 +0000)]
Teach instcombine to increase the alignment of memset/memcpy/memmove when
the pointer is known to come from either a global variable, alloca or
malloc.  This allows us to compile this:

  P = malloc(28);
  memset(P, 0, 28);

into explicit stores on PPC instead of a memset call.

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

18 years agoupdate file comment
Chris Lattner [Mon, 6 Mar 2006 17:58:04 +0000 (17:58 +0000)]
update file comment

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

18 years agoRemove some code that doesn't make sense
Evan Cheng [Mon, 6 Mar 2006 07:31:44 +0000 (07:31 +0000)]
Remove some code that doesn't make sense

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

18 years agoMake sure command line options are parsed before we try to add the LibPath
Reid Spencer [Mon, 6 Mar 2006 06:38:19 +0000 (06:38 +0000)]
Make sure command line options are parsed before we try to add the LibPath
(-L options) to TheLinker. Problem noticed by Wink Saville.

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

18 years agoRemove SUnit::Priority1: it is re-calculated on demand as number of live
Evan Cheng [Mon, 6 Mar 2006 06:08:54 +0000 (06:08 +0000)]
Remove SUnit::Priority1: it is re-calculated on demand as number of live
range to be generated.

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

18 years agoHoist the HazardRecognizer out of the ScheduleDAGList.cpp file to where
Chris Lattner [Mon, 6 Mar 2006 00:22:00 +0000 (00:22 +0000)]
Hoist the HazardRecognizer out of the ScheduleDAGList.cpp file to where
targets can implement them.  Make the top-down scheduler non-g5-specific.

Remove the old testing hazard recognizer.

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

18 years agoHoist the HazardRecognizer out of the ScheduleDAGList.cpp file to where
Chris Lattner [Mon, 6 Mar 2006 00:20:29 +0000 (00:20 +0000)]
Hoist the HazardRecognizer out of the ScheduleDAGList.cpp file to where
targets can implement them.  Make the top-down scheduler non-g5-specific.

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

18 years agoComment fixes
Chris Lattner [Sun, 5 Mar 2006 23:59:20 +0000 (23:59 +0000)]
Comment fixes

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

18 years agoDon't depend on the C99 copysign function, implement it ourselves.
Chris Lattner [Sun, 5 Mar 2006 23:57:58 +0000 (23:57 +0000)]
Don't depend on the C99 copysign function, implement it ourselves.

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

18 years agonew testcase I forgot to check in earlier
Chris Lattner [Sun, 5 Mar 2006 23:53:04 +0000 (23:53 +0000)]
new testcase I forgot to check in earlier

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

18 years agoWhen a hazard recognizer needs noops to be inserted, do so. This represents
Chris Lattner [Sun, 5 Mar 2006 23:51:47 +0000 (23:51 +0000)]
When a hazard recognizer needs noops to be inserted, do so.  This represents
noops as null pointers in the instruction sequence.

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

18 years agoadd an emitnoop method
Chris Lattner [Sun, 5 Mar 2006 23:50:42 +0000 (23:50 +0000)]
add an emitnoop method

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

18 years agoimplement TII::insertNoop
Chris Lattner [Sun, 5 Mar 2006 23:49:55 +0000 (23:49 +0000)]
implement TII::insertNoop

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

18 years agocustom lowered nodes are legal too
Chris Lattner [Sun, 5 Mar 2006 23:49:19 +0000 (23:49 +0000)]
custom lowered nodes are legal too

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

18 years agoadd a hook to insert a noop
Chris Lattner [Sun, 5 Mar 2006 23:48:51 +0000 (23:48 +0000)]
add a hook to insert a noop

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

18 years agoImplement G5HazardRecognizer as a trivial thing that wants 5 cycles between
Chris Lattner [Sun, 5 Mar 2006 23:13:56 +0000 (23:13 +0000)]
Implement G5HazardRecognizer as a trivial thing that wants 5 cycles between
copyfromreg nodes.  Clearly useful!

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

18 years agoAdd basic hazard recognizer support. noop insertion isn't complete yet though.
Chris Lattner [Sun, 5 Mar 2006 22:45:01 +0000 (22:45 +0000)]
Add basic hazard recognizer support.  noop insertion isn't complete yet though.

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

18 years agoFor transforms the behave differently if main goes away, add an option to prevent...
Andrew Lenharth [Sun, 5 Mar 2006 22:21:36 +0000 (22:21 +0000)]
For transforms the behave differently if main goes away, add an option to prevent bugpoint from removing main

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

18 years agoFix VC++ compilation error.
Jeff Cohen [Sun, 5 Mar 2006 21:43:37 +0000 (21:43 +0000)]
Fix VC++ compilation error.

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

18 years agoBreathe some life into a comment.
Jim Laskey [Sun, 5 Mar 2006 21:20:20 +0000 (21:20 +0000)]
Breathe some life into a comment.

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

18 years agoSplit the list scheduler into top-down and bottom-up pieces. The priority
Chris Lattner [Sun, 5 Mar 2006 21:10:33 +0000 (21:10 +0000)]
Split the list scheduler into top-down and bottom-up pieces.  The priority
function of the top-down scheduler are completely bogus currently, and
having (future) PPC specific in this file is also wrong, but this is a
small incremental step.

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

18 years agoAdd a new scheduling type. This is, of course, a hack. Proper factoring
Chris Lattner [Sun, 5 Mar 2006 21:08:06 +0000 (21:08 +0000)]
Add a new scheduling type.  This is, of course, a hack.  Proper factoring
will come later.

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

18 years agoMove the available queue to being inside the ListSchedule method, since it
Chris Lattner [Sun, 5 Mar 2006 20:21:55 +0000 (20:21 +0000)]
Move the available queue to being inside the ListSchedule method, since it
bounds its lifetime.

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

18 years agoadd a note
Chris Lattner [Sun, 5 Mar 2006 20:00:08 +0000 (20:00 +0000)]
add a note

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

18 years agoReinstate this now that the offending opposite xform has been removed.
Chris Lattner [Sun, 5 Mar 2006 19:53:55 +0000 (19:53 +0000)]
Reinstate this now that the offending opposite xform has been removed.

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

18 years agoDo not fold (add (shl x, c1), (shl c2, c1)) -> (shl (add x, c2), c1),
Chris Lattner [Sun, 5 Mar 2006 19:52:57 +0000 (19:52 +0000)]
Do not fold (add (shl x, c1), (shl c2, c1)) -> (shl (add x, c2), c1),
we want to canonicalize the other way.

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

18 years agoprint arbitrary constant pool entries
Chris Lattner [Sun, 5 Mar 2006 09:38:03 +0000 (09:38 +0000)]
print arbitrary constant pool entries

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

18 years agoBack out fold (shl (add x, c1), c2) -> (add (shl x, c2), c1<<c2) for now.
Evan Cheng [Sun, 5 Mar 2006 07:30:16 +0000 (07:30 +0000)]
Back out fold (shl (add x, c1), c2) -> (add (shl x, c2), c1<<c2) for now.
It's causing an infinite loop compiling ldecod on x86 / Darwin.

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

18 years agoAdd some simple copysign folds
Chris Lattner [Sun, 5 Mar 2006 05:30:57 +0000 (05:30 +0000)]
Add some simple copysign folds

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

18 years agoCodegen copysign[f] into a FCOPYSIGN node
Chris Lattner [Sun, 5 Mar 2006 05:09:38 +0000 (05:09 +0000)]
Codegen copysign[f] into a FCOPYSIGN node

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

18 years agoCopysign needs to be expanded everywhere. Note that Alpha and IA64 should
Chris Lattner [Sun, 5 Mar 2006 05:08:37 +0000 (05:08 +0000)]
Copysign needs to be expanded everywhere.  Note that Alpha and IA64 should
implement copysign as a native op if they have it.

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

18 years agoAdd a copysign node
Chris Lattner [Sun, 5 Mar 2006 05:06:40 +0000 (05:06 +0000)]
Add a copysign node

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

18 years agoadd a note for something evan noticed
Chris Lattner [Sun, 5 Mar 2006 01:15:18 +0000 (01:15 +0000)]
add a note for something evan noticed

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

18 years agoMake vector narrowing more effective, implementing
Chris Lattner [Sun, 5 Mar 2006 00:22:33 +0000 (00:22 +0000)]
Make vector narrowing more effective, implementing
Transforms/InstCombine/vec_narrow.ll.  This add support for narrowing
extract_element(insertelement) also.

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

18 years agonew testcase for vector narrowing.
Chris Lattner [Sun, 5 Mar 2006 00:21:28 +0000 (00:21 +0000)]
new testcase for vector narrowing.

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

18 years agoImplemented.
Chris Lattner [Sat, 4 Mar 2006 23:33:44 +0000 (23:33 +0000)]
Implemented.

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

18 years agofold (mul (add x, c1), c2) -> (add (mul x, c2), c1*c2)
Chris Lattner [Sat, 4 Mar 2006 23:33:26 +0000 (23:33 +0000)]
fold (mul (add x, c1), c2) -> (add (mul x, c2), c1*c2)
fold (shl (add x, c1), c2) -> (add (shl x, c2), c1<<c2)

This allows us to compile CodeGen/PowerPC/addi-reassoc.ll into:

_test1:
        slwi r2, r4, 4
        add r2, r2, r3
        lwz r3, 36(r2)
        blr
_test2:
        mulli r2, r4, 5
        add r2, r2, r3
        lbz r2, 11(r2)
        extsb r3, r2
        blr

instead of:

_test1:
        addi r2, r4, 2
        slwi r2, r2, 4
        add r2, r3, r2
        lwz r3, 4(r2)
        blr
_test2:
        addi r2, r4, 2
        mulli r2, r2, 5
        add r2, r3, r2
        lbz r2, 1(r2)
        extsb r3, r2
        blr

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

18 years agonew testcase
Chris Lattner [Sat, 4 Mar 2006 23:31:49 +0000 (23:31 +0000)]
new testcase

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

18 years agoFix a crash compiling Obsequi
Chris Lattner [Sat, 4 Mar 2006 21:48:01 +0000 (21:48 +0000)]
Fix a crash compiling Obsequi

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

18 years agonew testcase
Chris Lattner [Sat, 4 Mar 2006 09:35:02 +0000 (09:35 +0000)]
new testcase

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

18 years agoAdd factoring of multiplications, e.g. turning A*A+A*B into A*(A+B).
Chris Lattner [Sat, 4 Mar 2006 09:31:13 +0000 (09:31 +0000)]
Add factoring of multiplications, e.g. turning A*A+A*B into A*(A+B).
Testcase here: Transforms/Reassociate/mulfactor.ll

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

18 years agoAdd a note
Chris Lattner [Sat, 4 Mar 2006 08:44:51 +0000 (08:44 +0000)]
Add a note

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

18 years agoRegenerate
Chris Lattner [Sat, 4 Mar 2006 07:53:41 +0000 (07:53 +0000)]
Regenerate

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

18 years agoDon't use invalidated iterators!
Chris Lattner [Sat, 4 Mar 2006 07:53:16 +0000 (07:53 +0000)]
Don't use invalidated iterators!

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

18 years agoAdd an entry
Evan Cheng [Sat, 4 Mar 2006 07:49:50 +0000 (07:49 +0000)]
Add an entry

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

18 years agoCanonicalize (X+C1)*C2 -> X*C2+C1*C2
Chris Lattner [Sat, 4 Mar 2006 06:04:02 +0000 (06:04 +0000)]
Canonicalize (X+C1)*C2 -> X*C2+C1*C2
This implements Transforms/InstCombine/add.ll:test31

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

18 years agonew testcase
Chris Lattner [Sat, 4 Mar 2006 06:02:36 +0000 (06:02 +0000)]
new testcase

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

18 years agoMEMSET / MEMCPY lowering bugs: we can't issue a single WORD / DWORD version of
Evan Cheng [Sat, 4 Mar 2006 02:48:56 +0000 (02:48 +0000)]
MEMSET / MEMCPY lowering bugs: we can't issue a single WORD / DWORD version of
rep/stos and rep/mov if the count is not a constant. We could do
  rep/stosl; and $count, 3; rep/stosb
For now, I will lower them to memset / memcpy calls. We will revisit this after
a little bit experiment.

Also need to take care of the trailing bytes even if the count is a constant.
Since the max. number of trailing bytes are 3, we will simply issue loads /
stores.

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

18 years agoKeep Visual Studio happy.
Jeff Cohen [Sat, 4 Mar 2006 02:19:46 +0000 (02:19 +0000)]
Keep Visual Studio happy.

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

18 years agoBe more conservative with our symbolic alias analysis. In particular,
Chris Lattner [Sat, 4 Mar 2006 02:06:34 +0000 (02:06 +0000)]
Be more conservative with our symbolic alias analysis.  In particular,
don't assume that A[1][0] and A[0][i] can't alias.  "i" might be out of
range, or even negative.  This fixes a miscompilation of 188.ammp (which
does bad pointer tricks) with the new CFE.

Testcase here: Analysis/BasicAA/2006-03-03-BadArraySubscript.ll

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

18 years agonew testcase
Chris Lattner [Sat, 4 Mar 2006 02:05:07 +0000 (02:05 +0000)]
new testcase

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

18 years agoadd a note
Chris Lattner [Sat, 4 Mar 2006 01:19:34 +0000 (01:19 +0000)]
add a note

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

18 years agoTypo
Evan Cheng [Sat, 4 Mar 2006 01:12:00 +0000 (01:12 +0000)]
Typo

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

18 years agoNew testcase, make sure nate doesn't vanish
Chris Lattner [Sat, 4 Mar 2006 00:47:12 +0000 (00:47 +0000)]
New testcase, make sure nate doesn't vanish

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

18 years agoSpec change: the size of a memset/memcpy/memmove is not required to be aligned
Chris Lattner [Sat, 4 Mar 2006 00:02:10 +0000 (00:02 +0000)]
Spec change: the size of a memset/memcpy/memmove is not required to be aligned
to the alignment argument.

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

18 years agoAdded support for dwarf block data entries.
Jim Laskey [Fri, 3 Mar 2006 21:00:14 +0000 (21:00 +0000)]
Added support for dwarf block data entries.

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

18 years agoSilence a warning.
Chris Lattner [Fri, 3 Mar 2006 19:34:28 +0000 (19:34 +0000)]
Silence a warning.

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

18 years agoAdd another test case for instruction scheduling.
Evan Cheng [Fri, 3 Mar 2006 18:58:09 +0000 (18:58 +0000)]
Add another test case for instruction scheduling.

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

18 years agoUnbreak autouprade of llvm.sqrt, simplify some code.
Chris Lattner [Fri, 3 Mar 2006 16:31:22 +0000 (16:31 +0000)]
Unbreak autouprade of llvm.sqrt, simplify some code.

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

18 years agoAdding basic structure support.
Jim Laskey [Fri, 3 Mar 2006 15:06:57 +0000 (15:06 +0000)]
Adding basic structure support.

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

18 years agoAdd more vector NodeTypes: VSDIV, VUDIV, VAND, VOR, and VXOR.
Evan Cheng [Fri, 3 Mar 2006 07:01:07 +0000 (07:01 +0000)]
Add more vector NodeTypes: VSDIV, VUDIV, VAND, VOR, and VXOR.

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

18 years agoNumber of NodeTypes now exceeds 128.
Evan Cheng [Fri, 3 Mar 2006 06:58:59 +0000 (06:58 +0000)]
Number of NodeTypes now exceeds 128.

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