Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Fix for PR 2323, infinite loop in tail dup. | Dale Johannesen | 2008-05-13 | 1 | -4/+15 | |
| | | | | llvm-svn: 51063 | |||||
* | add a note | Chris Lattner | 2008-05-13 | 1 | -0/+18 | |
| | | | | llvm-svn: 51062 | |||||
* | - Fix the pasto in the fix for a previous pasto. | Evan Cheng | 2008-05-13 | 1 | -4/+4 | |
| | | | | | | - Incorporate Chris' comment suggestion. llvm-svn: 51061 | |||||
* | add a note | Chris Lattner | 2008-05-13 | 1 | -0/+24 | |
| | | | | llvm-svn: 51060 | |||||
* | Fix one more encoding bug. | Nate Begeman | 2008-05-13 | 1 | -1/+1 | |
| | | | | llvm-svn: 51057 | |||||
* | - Don't treat anyext 16-bit load as a 32-bit load if it's volatile. | Evan Cheng | 2008-05-13 | 1 | -2/+2 | |
| | | | | | | - Correct a pasto. llvm-svn: 51054 | |||||
* | Make the non-local CSE safety checks slightly more thorough. | Owen Anderson | 2008-05-13 | 1 | -6/+8 | |
| | | | | llvm-svn: 51035 | |||||
* | Adding files for Microchip's PIC16 target. | Sanjiv Gupta | 2008-05-13 | 23 | -0/+3323 | |
| | | | | | | | | | | | | | | | | | A brief description about PIC16: =============================== PIC16 is an 8-bit microcontroller with only one 8-bit register which is the accumulator. All arithmetic/load/store operations are 8-bit only. The architecture has two address spaces: program and data. The program memory is divided into 2K pages and the data memory is divided into banks of 128 byte, with only 80 usable bytes, resulting in an non-contiguous data memory. It supports direct data memory access (by specifying the address as part of the instruction) and indirect data and program memory access (in an unorthodox fashion which utilize a 16 bit pointer register). Two classes of registers exist: (8-bit class which is only one accumulator) (16-bit class, which contains one or more 16 bit pointer(s)) llvm-svn: 51027 | |||||
* | Instead of a vector load, shuffle and then extract an element. Load the ↵ | Evan Cheng | 2008-05-13 | 4 | -83/+89 | |
| | | | | | | | | | | | element from address with an offset. pshufd $1, (%rdi), %xmm0 movd %xmm0, %eax => movl 4(%rdi), %eax llvm-svn: 51026 | |||||
* | Add support for non-local CSE of read-only calls. | Owen Anderson | 2008-05-13 | 1 | -12/+45 | |
| | | | | llvm-svn: 51024 | |||||
* | Derive GetResultInst from UnaryInstruction, this simplifies code and removes ↵ | Gabor Greif | 2008-05-13 | 1 | -8/+6 | |
| | | | | | | a FIXME. llvm-svn: 51023 | |||||
* | Change class' public PassInfo variables to by initialized with the | Dan Gohman | 2008-05-13 | 16 | -36/+31 | |
| | | | | | | | | | | | address of the PassInfo directly instead of calling getPassInfo. This eliminates a bunch of dynamic initializations of static data. Also, fold RegisterPassBase into PassInfo, make a bunch of its data members const, and rearrange some code to initialize data members in constructors instead of using setter member functions. llvm-svn: 51022 | |||||
* | 80 col / tabs fixes | Nate Begeman | 2008-05-13 | 2 | -6/+7 | |
| | | | | llvm-svn: 51021 | |||||
* | Fix and encoding error in the psrad xmm, imm8 instruction. | Nate Begeman | 2008-05-13 | 1 | -1/+1 | |
| | | | | llvm-svn: 51020 | |||||
* | On x86, it's safe to treat i32 load anyext as a normal i32 load. Ditto for ↵ | Evan Cheng | 2008-05-13 | 2 | -27/+28 | |
| | | | | | | i8 anyext load to i16. llvm-svn: 51019 | |||||
* | Clean up the use of static and anonymous namespaces. This turned up | Dan Gohman | 2008-05-13 | 124 | -705/+783 | |
| | | | | | | | several things that were neither in an anonymous namespace nor static but not intended to be global. llvm-svn: 51017 | |||||
* | Teach Legalize how to scalarize VSETCC | Nate Begeman | 2008-05-12 | 2 | -0/+37 | |
| | | | | | | Teach X86 a few more vsetcc patterns. Custom lowering for unsupported ones is next. llvm-svn: 51009 | |||||
* | Xform bitconvert(build_pair(load a, load b)) to a single load if the load ↵ | Evan Cheng | 2008-05-12 | 4 | -74/+55 | |
| | | | | | | locations are at the right offset from each other. llvm-svn: 51008 | |||||
* | Be more aggressive about tail-merging small blocks | Dale Johannesen | 2008-05-12 | 1 | -1/+12 | |
| | | | | | | | if those blocks consist entirely of common instructions; merging will not add an extra branch in this case. llvm-svn: 51006 | |||||
* | Constify isSourceDefinedByImplicitDef function. Otherwise, just formatting | Bill Wendling | 2008-05-12 | 1 | -45/+38 | |
| | | | | | | changes that don't change functionality. llvm-svn: 51004 | |||||
* | Constify the machine instruction passed into the | Bill Wendling | 2008-05-12 | 2 | -2/+3 | |
| | | | | | | "is{Trivially,Really}ReMaterializable" methods. llvm-svn: 51001 | |||||
* | Initial X86 codegen support for VSETCC. | Nate Begeman | 2008-05-12 | 3 | -11/+44 | |
| | | | | llvm-svn: 51000 | |||||
* | Further rework of tail merge algorithm. Not quite | Dale Johannesen | 2008-05-12 | 1 | -111/+77 | |
| | | | | | | | | semantically identical, but little difference in either results or execution speed; but it's much easier to read, at least IMO. llvm-svn: 50999 | |||||
* | Simplify some checks | Nate Begeman | 2008-05-12 | 1 | -4/+4 | |
| | | | | llvm-svn: 50998 | |||||
* | Fix a copy+paste bug; pseudo-instructions shouldn't have | Dan Gohman | 2008-05-12 | 1 | -21/+14 | |
| | | | | | | encoding information. llvm-svn: 50997 | |||||
* | Pointer comparisons should use icmp, not vicmp | Nate Begeman | 2008-05-12 | 1 | -1/+1 | |
| | | | | llvm-svn: 50996 | |||||
* | Go back to passing the analyses around as parameters. | Owen Anderson | 2008-05-12 | 1 | -21/+33 | |
| | | | | llvm-svn: 50995 | |||||
* | Pointer comparisons should be handled by icmp, not vicmp :) | Nate Begeman | 2008-05-12 | 2 | -3/+3 | |
| | | | | llvm-svn: 50994 | |||||
* | Hard code CmpInst back to i1 for now while I go track down what in the ↵ | Nate Begeman | 2008-05-12 | 1 | -2/+2 | |
| | | | | | | | | bitcode reader/writer is assuming i1 This was breaking a bunch of tests llvm-svn: 50992 | |||||
* | Refactor isConsecutiveLoad from X86 to TargetLowering so DAG combiner can ↵ | Evan Cheng | 2008-05-12 | 3 | -67/+95 | |
| | | | | | | make use of it. llvm-svn: 50991 | |||||
* | Revert the previous commit. Go ahead and hoist rematerializable instructions. | Bill Wendling | 2008-05-12 | 1 | -4/+0 | |
| | | | | llvm-svn: 50990 | |||||
* | Add support for vicmp/vfcmp codegen, more legalize support coming. | Nate Begeman | 2008-05-12 | 4 | -0/+99 | |
| | | | | | | This is necessary to unbreak the build. llvm-svn: 50988 | |||||
* | One real change - don't hoist something that's trivially rematerializable. It's | Bill Wendling | 2008-05-12 | 1 | -18/+19 | |
| | | | | | | | | possible for it to produce worse code than before. The rest of this patch is code cleanup. llvm-svn: 50987 | |||||
* | Fix build breakage | Nate Begeman | 2008-05-12 | 1 | -1/+1 | |
| | | | | llvm-svn: 50986 | |||||
* | Add two new instructions to the llvm IR, vicmp and vfcmp. see updated LangRef | Nate Begeman | 2008-05-12 | 11 | -1461/+1697 | |
| | | | | | | for details. CodeGen support coming in a follow up patch llvm-svn: 50985 | |||||
* | Make firstEightPowers const. | Dan Gohman | 2008-05-12 | 1 | -2/+2 | |
| | | | | llvm-svn: 50975 | |||||
* | Update comments. | Dan Gohman | 2008-05-12 | 2 | -5/+4 | |
| | | | | llvm-svn: 50974 | |||||
* | Fix a compile error on compilers that still want a return value | Dan Gohman | 2008-05-12 | 1 | -0/+1 | |
| | | | | | | in a non-void function that calls abort. llvm-svn: 50969 | |||||
* | Fix a missing break in the ISD::FLT_ROUNDS_ handling. Patch by giuma! | Dan Gohman | 2008-05-12 | 1 | -0/+1 | |
| | | | | llvm-svn: 50967 | |||||
* | Move the various analyses used by GVN into static variables so we don't have ↵ | Owen Anderson | 2008-05-12 | 1 | -30/+21 | |
| | | | | | | to keep passing them around or refetching them. llvm-svn: 50963 | |||||
* | prune #includes. | Chris Lattner | 2008-05-12 | 1 | -3/+0 | |
| | | | | llvm-svn: 50962 | |||||
* | Add a new SparsePropagation analysis utility, which allows you to do | Chris Lattner | 2008-05-12 | 1 | -0/+320 | |
| | | | | | | | | SCCP like sparse lattice analysis with relative ease. Just pick your lattice function and implement the transfer function and you're good. Just make sure you don't break monotonicity ;-) llvm-svn: 50961 | |||||
* | Make constructors target-specific. This fixes problems where the path would | Nick Lewycky | 2008-05-11 | 2 | -1/+17 | |
| | | | | | | include backslashes on Windows. This should fix llvm-ld problems on win32. llvm-svn: 50960 | |||||
* | Add note | Anton Korobeynikov | 2008-05-11 | 1 | -0/+38 | |
| | | | | llvm-svn: 50959 | |||||
* | Fix various DOUTs to not call the extremely expensive Value::getName() | Chris Lattner | 2008-05-11 | 1 | -5/+5 | |
| | | | | | | | | method. DOUT statements are disabled when assertions are off, but the side effects of getName() are still evaluated. Just call getNameSTart, which is close enough and doesn't cause heap traffic. llvm-svn: 50958 | |||||
* | Simplify code by using SwitchInst::findCaseValue instead of reimplementing it. | Chris Lattner | 2008-05-10 | 1 | -14/+2 | |
| | | | | llvm-svn: 50957 | |||||
* | Fix linking of internal aliases | Anton Korobeynikov | 2008-05-10 | 1 | -28/+55 | |
| | | | | llvm-svn: 50950 | |||||
* | merge of use-diet branch to trunk | Gabor Greif | 2008-05-10 | 7 | -262/+598 | |
| | | | | llvm-svn: 50943 | |||||
* | When transforming a vector_shuffle to a load, the base address must not be ↵ | Evan Cheng | 2008-05-10 | 1 | -0/+2 | |
| | | | | | | an undef. llvm-svn: 50940 | |||||
* | For now, abort when an ISD::VAARG is encountered on x86-64, rather | Dan Gohman | 2008-05-10 | 2 | -3/+18 | |
| | | | | | | | | | than silently generate invalid code. llvm-gcc does not currently use VAArgInst; it lowers va_arg in the front-end. llvm-svn: 50930 |