Chris Lattner [Wed, 8 Mar 2006 23:55:38 +0000 (23:55 +0000)]
Fix a really annoying bug in bugpoint that made reducing C++ testcases
almost impossible with the new CFE. It now guarantees that the static
ctor/dtor list is correctly split between the modules.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26624
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 8 Mar 2006 22:32:20 +0000 (22:32 +0000)]
Automatically pass -emit-llvm to llvmgcc when using %llvmgcc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26623
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 8 Mar 2006 22:28:19 +0000 (22:28 +0000)]
Pass -emit-llvm automatically to %llvmgcc and %llvmg++ to fix regression
tests with the new f.e.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26622
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Wed, 8 Mar 2006 19:31:15 +0000 (19:31 +0000)]
Add #line support for CBE.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26621
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 8 Mar 2006 18:43:36 +0000 (18:43 +0000)]
Fit to 80 columns.
Add support for running static ctor/dtors that aren't handled by __main.
This fixes programs with the JIT and the new CFE, such as HBD.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26620
91177308-0d34-0410-b5e6-
96231b3b80d8
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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