Chris Lattner [Sun, 3 May 2009 18:49:37 +0000 (18:49 +0000)]
be very explicit that readnone/readonly functions can't
throw exceptions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70788
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sun, 3 May 2009 18:32:42 +0000 (18:32 +0000)]
In some rare cases, the register allocator can spill registers but end up not utilizing registers at all. The fundamental problem is linearscan's backtracking can end up freeing more than one allocated registers. However, reloads and restores might be folded into uses / defs and freed registers might not be used at all.
VirtRegMap keeps track of allocations so it knows what's not used. As a horrible hack, the stack coloring can color spill slots with *free* registers. That is, it replace reload and spills with copies from and to the free register. It unfold instructions that load and store the spill slot and replace them with register using variants.
Not yet enabled. This is part 1. More coming.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70787
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 15:50:18 +0000 (15:50 +0000)]
Handle implicit zext in a better way. Shamelessly stolen from x86 backend.
Thanks for Dan Gohman for suggestion!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70782
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:42:23 +0000 (13:42 +0000)]
Regenerate
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70772
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:19:57 +0000 (13:19 +0000)]
Fix typo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70770
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:19:42 +0000 (13:19 +0000)]
Update due to mainline API change
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70769
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:19:24 +0000 (13:19 +0000)]
Add TODO list :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70768
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:19:09 +0000 (13:19 +0000)]
Make handling of conditional stuff much more straightforward
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70767
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:18:50 +0000 (13:18 +0000)]
Temporary disable imm patterns for cmp. Actually, all cmp-related stuff (select_cc, setcc, br_cc). needs to be rethought
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70766
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:18:33 +0000 (13:18 +0000)]
Expand divisions into libcalls
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70765
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:18:16 +0000 (13:18 +0000)]
Properly handle sdiv / udiv / srem / urem libcalls
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70764
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:17:49 +0000 (13:17 +0000)]
Custom lower SIGN_EXTEND
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70763
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:17:31 +0000 (13:17 +0000)]
Some eye-candy
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70762
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:17:11 +0000 (13:17 +0000)]
Print function header / footer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70761
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:16:54 +0000 (13:16 +0000)]
Fix printing: je => jeq
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70760
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:16:37 +0000 (13:16 +0000)]
Add 8bit shifts
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70759
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:16:17 +0000 (13:16 +0000)]
Handle logical shift right (at least I hope so :) )
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70758
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:15:57 +0000 (13:15 +0000)]
Handle anyext
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70757
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:15:40 +0000 (13:15 +0000)]
Expand all sorts of indirect branches
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70755
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:15:22 +0000 (13:15 +0000)]
Add InsertBranch() hook for tail mergeing
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70754
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:15:03 +0000 (13:15 +0000)]
Implement bswap
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70753
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:14:46 +0000 (13:14 +0000)]
Properly handle ExternalSymbol's
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70752
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:14:25 +0000 (13:14 +0000)]
Expand muls (all mulls!) to libcalls for now
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70751
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:14:08 +0000 (13:14 +0000)]
Proper name 16 bit libcalls
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70750
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:13:51 +0000 (13:13 +0000)]
Add libcall expansion for 16 and 128 bit muls
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70749
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:13:34 +0000 (13:13 +0000)]
Provide addc and subc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70748
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:13:17 +0000 (13:13 +0000)]
Add left shift
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70747
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:12:58 +0000 (13:12 +0000)]
Add direct branch
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70746
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:12:37 +0000 (13:12 +0000)]
It's error-prone to maintain two separate variants of asmprinting stuff, one of which is even used. Drop second (aka 'intel') variant of operands. It can be added later, if needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70745
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:12:23 +0000 (13:12 +0000)]
Lower select with custom inserted and make condjumps generic
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70744
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:12:06 +0000 (13:12 +0000)]
Add first draft for conditions, conditional branches, etc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70743
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:11:48 +0000 (13:11 +0000)]
Hanle i8 returns
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70742
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:11:35 +0000 (13:11 +0000)]
Small tweaking
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70741
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:11:20 +0000 (13:11 +0000)]
Add prologue/epilogue emission. Fix frame pointer handling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70740
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:11:04 +0000 (13:11 +0000)]
Add code for save/restore of callee-saved registers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70739
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:10:40 +0000 (13:10 +0000)]
Two more hooks for RA and FP registers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70738
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:10:26 +0000 (13:10 +0000)]
Proper handle loading of effective address of stack slot stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70737
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:10:11 +0000 (13:10 +0000)]
Match frame indexes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70736
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:09:57 +0000 (13:09 +0000)]
First draft of stack slot loads / stores lowering
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70735
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:09:40 +0000 (13:09 +0000)]
Reverse order of memory arguments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70734
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:09:24 +0000 (13:09 +0000)]
Remove bogus pattern
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70733
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:09:10 +0000 (13:09 +0000)]
Correct asmprinting of memory operands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70732
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:08:51 +0000 (13:08 +0000)]
Match wrapper node for address
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70731
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:08:33 +0000 (13:08 +0000)]
Add lowering for global address nodes. Not pretty efficient though.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70730
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:08:13 +0000 (13:08 +0000)]
Some early full call lowering draft for direct calls
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70729
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:07:54 +0000 (13:07 +0000)]
Add call frame setup instruction elimination and lowerid for bunch of call-related stuff.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70728
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:07:31 +0000 (13:07 +0000)]
Add CALL lowering.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70727
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:07:10 +0000 (13:07 +0000)]
Add bunch of mem-whatever patterns
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70726
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:06:46 +0000 (13:06 +0000)]
Add bunch of reg-mem inst patterns
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70725
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:06:26 +0000 (13:06 +0000)]
Add normal and trunc stores
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70724
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:06:03 +0000 (13:06 +0000)]
Basic support for mem=>reg moves
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70723
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:05:42 +0000 (13:05 +0000)]
Add 8-bit insts. zext behaviour is not modelled yet
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70722
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:05:22 +0000 (13:05 +0000)]
Add 8-bit regclass and pattern for sext_inreg
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70721
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:05:00 +0000 (13:05 +0000)]
Add pattern for OR
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70720
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:04:41 +0000 (13:04 +0000)]
Add reg-imm variants
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70719
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:04:23 +0000 (13:04 +0000)]
Add hint to nop
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70718
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:04:06 +0000 (13:04 +0000)]
Add more instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70717
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:03:50 +0000 (13:03 +0000)]
Cleanup
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70716
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:03:33 +0000 (13:03 +0000)]
Add dummy lowering for shifts
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70715
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:03:14 +0000 (13:03 +0000)]
We don't have any div at all - thus mark it as expensive
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70714
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:02:57 +0000 (13:02 +0000)]
We're not going to spend 100% of time in interrupts, do we? :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70713
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:02:39 +0000 (13:02 +0000)]
Add simple reg-reg add.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70712
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:02:22 +0000 (13:02 +0000)]
gas uses lower letter for register names
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70711
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:02:04 +0000 (13:02 +0000)]
Add code enough for emission of reg-reg and reg-imm moves. This allows us to compile "ret i16 0" properly!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70710
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:01:41 +0000 (13:01 +0000)]
Add function body printing routine
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70709
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:01:23 +0000 (13:01 +0000)]
Add 'msp430' target triple recognizer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70708
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:01:04 +0000 (13:01 +0000)]
Make emit{Prologue,Epilogue}() noop for now
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70707
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:00:46 +0000 (13:00 +0000)]
Add callee-saved regs & reg classes getter hooks
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70706
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:00:28 +0000 (13:00 +0000)]
Add simple FP indicator for given function hook
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70705
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 13:00:11 +0000 (13:00 +0000)]
Provide set of reserved registers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70704
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 12:59:50 +0000 (12:59 +0000)]
Add proper ISD::RET lowering
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70703
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 12:59:33 +0000 (12:59 +0000)]
Add first draft of MSP430 calling convention stuff and draft of ISD::FORMAL_ARGUMENTS node lowering.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70702
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 12:59:16 +0000 (12:59 +0000)]
Fix register names, fix register allocation order, handle frame pointer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70701
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 12:58:58 +0000 (12:58 +0000)]
Clearify the usage and add some debug stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70700
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 12:58:40 +0000 (12:58 +0000)]
Cleanup
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70699
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 12:58:22 +0000 (12:58 +0000)]
Add cmake script. No idea whether it works or not :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70698
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 12:58:05 +0000 (12:58 +0000)]
Add a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70697
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 12:57:47 +0000 (12:57 +0000)]
Typo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70695
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 3 May 2009 12:57:15 +0000 (12:57 +0000)]
Dummy MSP430 backend
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70694
91177308-0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Sun, 3 May 2009 08:50:41 +0000 (08:50 +0000)]
-Move the DwarfWriter::ValidDebugInfo check to a static DIDescriptor::ValidDebugInfo
-Create DebugLocs without the need to have a DwarfWriter around
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70682
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sun, 3 May 2009 05:46:20 +0000 (05:46 +0000)]
Revert r70645 for now; it's causing a variety of regressions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70661
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sun, 3 May 2009 03:49:08 +0000 (03:49 +0000)]
Revert r70630. Go back to appending ".b" to internal globals when shrinking
them to bool.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70653
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 2 May 2009 21:20:51 +0000 (21:20 +0000)]
Add an svn:ignore for unittests/VMCore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70646
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 2 May 2009 21:19:20 +0000 (21:19 +0000)]
Convert ScalarEvolution to use CallbackVH for its internal map. This
makes ScalarEvolution::deleteValueFromRecords, and it's code that
subtly needed to be called before ReplaceAllUsesWith, unnecessary.
It also makes ValueDeletionListener unnecessary.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70645
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 2 May 2009 21:10:48 +0000 (21:10 +0000)]
Apply Jeffrey Yasskin's CallbackVH patch, with minor tweaks from me
to make the copy constructor and destructor protected, and corresponding
adjustments to the unittests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70644
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 2 May 2009 21:03:21 +0000 (21:03 +0000)]
Include <limits.h> to get the definition of CHAR_BIT.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70643
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 2 May 2009 20:22:10 +0000 (20:22 +0000)]
The second argument to RecursivelyDeleteTriviallyDeadInstructions has
a default value, and will hopefully be going away soon.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70642
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 2 May 2009 18:29:22 +0000 (18:29 +0000)]
Previously, RecursivelyDeleteDeadInstructions provided an option
of returning a list of pointers to Values that are deleted. This was
unsafe, because the pointers in the list are, by nature of what
RecursivelyDeleteDeadInstructions does, always dangling. Replace this
with a simple callback mechanism. This may eventually be removed if
all clients can reasonably be expected to use CallbackVH.
Use this to factor out the dead-phi-cycle-elimination code from LSR
utility function, and generalize it to use the
RecursivelyDeleteTriviallyDeadInstructions utility function.
This makes LSR more aggressive about eliminating dead PHI cycles;
adjust tests to either be less trivial or to simply expect fewer
instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70636
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 2 May 2009 17:43:35 +0000 (17:43 +0000)]
When ScalarEvolution is told to forget the trip count for a loop, have
it also forget any SCEVs associated with loop-header PHIs in the loop,
as they may be dependent on trip count information.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70633
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 2 May 2009 17:29:26 +0000 (17:29 +0000)]
Tell ScalarEvolution that the loop is being deleted before actually
deleting it. This will let ScalarEvolution be more complete about
updating its records.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70632
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sat, 2 May 2009 16:21:50 +0000 (16:21 +0000)]
Don't append ".b" to the names of globals that are being shrunk to booleans.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70630
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 2 May 2009 05:36:01 +0000 (05:36 +0000)]
Don't split critical edges during the AddUsersIfInteresting phase
of LSR. This makes the AddUsersIfInteresting phase of LSR a pure
analysis instead of a phase that potentially does CFG modifications.
The conditions where this code would actually perform a split are
rare, and in the cases where it actually would do a split the split
is usually undone by CodeGenPrepare, and in cases where splits
actually survive into codegen, they appear to hurt more often than
they help.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70625
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 2 May 2009 01:29:12 +0000 (01:29 +0000)]
Add Base.td to svn:ignore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70619
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 1 May 2009 23:54:26 +0000 (23:54 +0000)]
'The attached patch fixes an issue where llc -march=cpp fails with
"Invalid primitive type" on input containing the x86_fp80 type.'
Patch by Collin Winter!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70610
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 1 May 2009 23:48:33 +0000 (23:48 +0000)]
Drop the default assumption about alignment down to 2 bits from 3. This apparently
helps some problems on win32 platforms (PR4119)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70603
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 1 May 2009 21:58:05 +0000 (21:58 +0000)]
Change the description string of the LoopInfo pass.
"Construction" makes it sound like a pass that might
modify the CFG to construct natural loops.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70580
91177308-0d34-0410-b5e6-
96231b3b80d8
Stuart Hastings [Fri, 1 May 2009 20:47:53 +0000 (20:47 +0000)]
Prevent looping when DenseSet is abused.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70572
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Fri, 1 May 2009 20:40:51 +0000 (20:40 +0000)]
HTML-escape '>' as '>' in sample C++ code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70569
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Fri, 1 May 2009 17:55:32 +0000 (17:55 +0000)]
Allow CONCAT_VECTORS nodes to be legal or have custom lowering for some targets.
Changes to take advantage of this will come later.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70560
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 1 May 2009 17:13:31 +0000 (17:13 +0000)]
Actually insert inserted instructions into the InsertedValues map.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70557
91177308-0d34-0410-b5e6-
96231b3b80d8