oota-llvm.git
15 years agoCustom lower SIGN_EXTEND
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

15 years agoSome eye-candy
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

15 years agoPrint function header / footer
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

15 years agoFix printing: je => jeq
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

15 years agoAdd 8bit shifts
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

15 years agoHandle logical shift right (at least I hope so :) )
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

15 years agoHandle anyext
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

15 years agoExpand all sorts of indirect branches
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

15 years agoAdd InsertBranch() hook for tail mergeing
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

15 years agoImplement bswap
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

15 years agoProperly handle ExternalSymbol's
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

15 years agoExpand muls (all mulls!) to libcalls for now
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

15 years agoProper name 16 bit libcalls
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

15 years agoAdd libcall expansion for 16 and 128 bit muls
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

15 years agoProvide addc and subc
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

15 years agoAdd left shift
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

15 years agoAdd direct branch
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

15 years agoIt's error-prone to maintain two separate variants of asmprinting stuff, one of which...
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

15 years agoLower select with custom inserted and make condjumps generic
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

15 years agoAdd first draft for conditions, conditional branches, etc
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

15 years agoHanle i8 returns
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

15 years agoSmall tweaking
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

15 years agoAdd prologue/epilogue emission. Fix frame pointer handling.
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

15 years agoAdd code for save/restore of callee-saved registers
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

15 years agoTwo more hooks for RA and FP registers
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

15 years agoProper handle loading of effective address of stack slot stuff
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

15 years agoMatch frame indexes
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

15 years agoFirst draft of stack slot loads / stores lowering
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

15 years agoReverse order of memory arguments
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

15 years agoRemove bogus pattern
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

15 years agoCorrect asmprinting of memory operands
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

15 years agoMatch wrapper node for address
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

15 years agoAdd lowering for global address nodes. Not pretty efficient though.
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

15 years agoSome early full call lowering draft for direct calls
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

15 years agoAdd call frame setup instruction elimination and lowerid for bunch of call-related...
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

15 years agoAdd CALL lowering.
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

15 years agoAdd bunch of mem-whatever patterns
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

15 years agoAdd bunch of reg-mem inst patterns
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

15 years agoAdd normal and trunc stores
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

15 years agoBasic support for mem=>reg moves
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

15 years agoAdd 8-bit insts. zext behaviour is not modelled yet
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

15 years agoAdd 8-bit regclass and pattern for sext_inreg
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

15 years agoAdd pattern for OR
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

15 years agoAdd reg-imm variants
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

15 years agoAdd hint to nop
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

15 years agoAdd more instructions
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

15 years agoCleanup
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

15 years agoAdd dummy lowering for shifts
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

15 years agoWe don't have any div at all - thus mark it as expensive
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

15 years agoWe're not going to spend 100% of time in interrupts, do we? :)
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

15 years agoAdd simple reg-reg add.
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

15 years agogas uses lower letter for register names
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

15 years agoAdd code enough for emission of reg-reg and reg-imm moves. This allows us to compile...
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

15 years agoAdd function body printing routine
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

15 years agoAdd 'msp430' target triple recognizer
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

15 years agoMake emit{Prologue,Epilogue}() noop for now
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

15 years agoAdd callee-saved regs & reg classes getter hooks
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

15 years agoAdd simple FP indicator for given function hook
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

15 years agoProvide set of reserved registers
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

15 years agoAdd proper ISD::RET lowering
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

15 years agoAdd first draft of MSP430 calling convention stuff and draft of ISD::FORMAL_ARGUMENTS...
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

15 years agoFix register names, fix register allocation order, handle frame pointer.
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

15 years agoClearify the usage and add some debug stuff
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

15 years agoCleanup
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

15 years agoAdd cmake script. No idea whether it works or not :)
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

15 years agoAdd a note
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

15 years agoTypo
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

15 years agoDummy MSP430 backend
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

15 years ago-Move the DwarfWriter::ValidDebugInfo check to a static DIDescriptor::ValidDebugInfo
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

15 years agoRevert r70645 for now; it's causing a variety of regressions.
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

15 years agoRevert r70630. Go back to appending ".b" to internal globals when shrinking
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

15 years agoAdd an svn:ignore for unittests/VMCore.
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

15 years agoConvert ScalarEvolution to use CallbackVH for its internal map. This
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

15 years agoApply Jeffrey Yasskin's CallbackVH patch, with minor tweaks from me
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

15 years agoInclude <limits.h> to get the definition of CHAR_BIT.
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

15 years agoThe second argument to RecursivelyDeleteTriviallyDeadInstructions has
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

15 years agoPreviously, RecursivelyDeleteDeadInstructions provided an option
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

15 years agoWhen ScalarEvolution is told to forget the trip count for a loop, have
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

15 years agoTell ScalarEvolution that the loop is being deleted before actually
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

15 years agoDon't append ".b" to the names of globals that are being shrunk to booleans.
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

15 years agoDon't split critical edges during the AddUsersIfInteresting phase
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

15 years agoAdd Base.td to svn:ignore.
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

15 years ago'The attached patch fixes an issue where llc -march=cpp fails with
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

15 years agoDrop the default assumption about alignment down to 2 bits from 3. This apparently
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

15 years agoChange the description string of the LoopInfo pass.
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

15 years agoPrevent looping when DenseSet is abused.
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

15 years agoHTML-escape '>' as '&gt;' in sample C++ code.
Misha Brukman [Fri, 1 May 2009 20:40:51 +0000 (20:40 +0000)]
HTML-escape '>' as '&gt;' in sample C++ code.

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

15 years agoAllow CONCAT_VECTORS nodes to be legal or have custom lowering for some targets.
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

15 years agoActually insert inserted instructions into the InsertedValues map.
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

15 years agoAdd an accessor method to allow clients to test if a given expression
Dan Gohman [Fri, 1 May 2009 17:08:34 +0000 (17:08 +0000)]
Add an accessor method to allow clients to test if a given expression
is associated with a SCEV expansion.

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

15 years agoMake RequiresTypeConversion canonicalize the types before calling the
Dan Gohman [Fri, 1 May 2009 17:07:43 +0000 (17:07 +0000)]
Make RequiresTypeConversion canonicalize the types before calling the
target hooks canLosslesslyBitCastTo and isTruncateFree. This allows
targets to avoid worrying about handling all combinations of integer
and pointer types.

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

15 years agoWhen printing a SCEVUnknown with pointer type, don't print an
Dan Gohman [Fri, 1 May 2009 17:02:22 +0000 (17:02 +0000)]
When printing a SCEVUnknown with pointer type, don't print an
artificial "ptrtoint", as it tends to clutter up complicated
expressions. The cast operators now print both source and
destination types, which is usually sufficient.

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

15 years agoShort-circuit inttoptr-ptrtoint constant expressions; these aren't
Dan Gohman [Fri, 1 May 2009 17:00:00 +0000 (17:00 +0000)]
Short-circuit inttoptr-ptrtoint constant expressions; these aren't
always folded by the regular constant folder because it doesn't have
TargetData information.

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

15 years agoMake SCEVExpander::addInsertedValue able to accept Values, not just
Dan Gohman [Fri, 1 May 2009 16:58:31 +0000 (16:58 +0000)]
Make SCEVExpander::addInsertedValue able to accept Values, not just
Instructions.

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

15 years agoMinor whitespace fix.
Dan Gohman [Fri, 1 May 2009 16:56:32 +0000 (16:56 +0000)]
Minor whitespace fix.

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

15 years agoFix an 80-column violation.
Dan Gohman [Fri, 1 May 2009 16:44:56 +0000 (16:44 +0000)]
Fix an 80-column violation.

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

15 years agoWhen creating cast scevs, canonicalize the destination type. This
Dan Gohman [Fri, 1 May 2009 16:44:18 +0000 (16:44 +0000)]
When creating cast scevs, canonicalize the destination type. This
avoids duplicate scevs that differ only in type.

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

15 years agoFix a compiler warning on hosts where uint64_t isn't unsigned long long.
Dan Gohman [Fri, 1 May 2009 16:33:33 +0000 (16:33 +0000)]
Fix a compiler warning on hosts where uint64_t isn't unsigned long long.

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

15 years agoFix some code to work if TargetLowering is not available.
Dan Gohman [Fri, 1 May 2009 16:29:14 +0000 (16:29 +0000)]
Fix some code to work if TargetLowering is not available.

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

15 years agoSimplify more code and add timer stuff.
Bill Wendling [Fri, 1 May 2009 08:40:06 +0000 (08:40 +0000)]
Simplify more code and add timer stuff.

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