summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Insert new pre-header before new header. Original pre-header mayDevang Patel2007-04-091-2/+2
| | | | | | | | | happen to be an entry, in such case, it is not a good idea to insert new block before entry. Also fix typo in assertion check. llvm-svn: 35833
* Fix a bug where calling materializeModule could corrupt the module, readingChris Lattner2007-04-091-9/+8
| | | | | | multiple copies of the function into the Function*. llvm-svn: 35831
* Preserve canonical loop form.Devang Patel2007-04-091-5/+55
| | | | llvm-svn: 35829
* When the number of elements is zero, don't malloc 32GB on 64-bit systems.Jeff Cohen2007-04-091-1/+1
| | | | | | | | | | Fixes unexpected failures on FreeBSD/amd64 of: CFrontend/2005-09-24-BitFieldCrash.c: CFrontend/2007-02-04-EmptyStruct.c: CFrontend/2007-03-26-ZeroWidthBitfield.c: CodeGen/Generic/2005-10-18-ZeroSizeStackObject.ll: llvm-svn: 35828
* Don't link against System or Support library. These things will alreadyReid Spencer2007-04-091-1/+1
| | | | | | be in the opt tool. llvm-svn: 35827
* Do not create new pre-header. Reuse original pre-header.Devang Patel2007-04-091-73/+57
| | | | llvm-svn: 35825
* For PR1146:Reid Spencer2007-04-091-0/+6
| | | | | | | | | | * Add ParamAttrs to InvokeInst class too. * Make sure all initializes of ParamAttrs in CallInst and InvokeInst are 0 * Destruct the ParamAttrs in Call/Invoke destructors to avoid memory leaks. This will change when ParamAttrsList is uniquified but needs to be correct until then. llvm-svn: 35824
* Remove a memory leak, until ParamAttrsList is uniqued.Reid Spencer2007-04-091-1/+5
| | | | llvm-svn: 35823
* Simpler for() loops.Devang Patel2007-04-091-23/+17
| | | | llvm-svn: 35822
* Fix future bug. Of course, Chris spotted this.Devang Patel2007-04-091-11/+12
| | | | | | Handle Argument or Undef as an incoming PHI value. llvm-svn: 35821
* More cosmetic changes.Devang Patel2007-04-091-14/+18
| | | | llvm-svn: 35820
* Only cosmetic changes. Zero functionality Change.Devang Patel2007-04-091-97/+100
| | | | llvm-svn: 35819
* For PR1146:Reid Spencer2007-04-093-59/+68
| | | | | | | * Add ParamAttrList pointers to Function and CallInst. * Move the implementation of ParamAttrList from Type.cpp to Function.cpp llvm-svn: 35818
* Unbreak VC++ build.Jeff Cohen2007-04-091-2/+3
| | | | llvm-svn: 35817
* Next stage into switch lowering refactoringAnton Korobeynikov2007-04-091-19/+340
| | | | | | | | | | 1. Fix some bugs in the jump table lowering threshold 2. Implement much better metric for optimal pivot selection 3. Tune thresholds for different lowering methods 4. Implement shift-and trick for lowering small (<machine word length) cases with few destinations. Good testcase will follow. llvm-svn: 35816
* Convert ImmediateDominators::DFSPass from being recursive to being iterative.Chris Lattner2007-04-091-1/+43
| | | | llvm-svn: 35815
* For PR1146:Reid Spencer2007-04-095-69/+116
| | | | | | Adapt handling of parameter attributes to use the new ParamAttrsList class. llvm-svn: 35814
* RegenerateReid Spencer2007-04-094-498/+568
| | | | llvm-svn: 35813
* For PR1146:Reid Spencer2007-04-096-25/+62
| | | | | | | | Use ParamAttrsList for writing parameter attributes. Since they are sparse now, we also write them sparsely (saves a few bytes). Unfortunately, this is a bytecode file format change. llvm-svn: 35811
* For PR1146:Reid Spencer2007-04-091-2/+1
| | | | | | Simplify construction of FunctionType to use default arguments. llvm-svn: 35810
* For PR1146:Reid Spencer2007-04-091-2/+2
| | | | | | Parameter attributes can now be defaulted for intrinsics. llvm-svn: 35809
* For PR1146:Reid Spencer2007-04-091-30/+36
| | | | | | Adjust writing of parameter attributes to use ParamAttrList class. llvm-svn: 35808
* minor cleanupsChris Lattner2007-04-091-14/+16
| | | | llvm-svn: 35807
* For PR1146:Reid Spencer2007-04-091-52/+106
| | | | | | Move parameter attributes functionality to ParamAttrsList class. llvm-svn: 35806
* move a bunch of register constraints from being handled byChris Lattner2007-04-091-42/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | getRegClassForInlineAsmConstraint to being handled by getRegForInlineAsmConstraint. This allows us to let the llvm register allocator allocate, which gives us better code. For example, X86/2007-01-29-InlineAsm-ir.ll used to compile to: _run_init_process: subl $4, %esp movl %ebx, (%esp) xorl %ebx, %ebx movl $11, %eax movl %ebx, %ecx movl %ebx, %edx # InlineAsm Start push %ebx ; movl %ebx,%ebx ; int $0x80 ; pop %ebx # InlineAsm End Now we get: _run_init_process: xorl %ecx, %ecx movl $11, %eax movl %ecx, %edx # InlineAsm Start push %ebx ; movl %ecx,%ebx ; int $0x80 ; pop %ebx # InlineAsm End llvm-svn: 35804
* implement support for CodeGen/X86/inline-asm-x-scalar.ll:test3 - i32/i64 valuesChris Lattner2007-04-091-2/+2
| | | | | | used with x constraints. llvm-svn: 35803
* implement CodeGen/X86/inline-asm-x-scalar.ll:test3Chris Lattner2007-04-091-2/+9
| | | | llvm-svn: 35802
* add some assertionsChris Lattner2007-04-091-0/+13
| | | | llvm-svn: 35800
* implement CodeGen/X86/inline-asm-x-scalar.llChris Lattner2007-04-091-1/+15
| | | | llvm-svn: 35799
* Move isReachableFromEntry out of line to avoid an unnecessary #includeOwen Anderson2007-04-091-0/+6
| | | | llvm-svn: 35797
* Fix a bug that caused alignment information to occasionally get stripped offChris Lattner2007-04-091-2/+11
| | | | | | of an allocation instruction when writing to bytecode. llvm-svn: 35796
* RegenerateReid Spencer2007-04-095-2173/+2127
| | | | llvm-svn: 35795
* Drop the implementation keyword.Reid Spencer2007-04-092-14/+1
| | | | llvm-svn: 35794
* Fix PR1304 and Transforms/InstCombine/2007-04-08-SingleEltVectorCrash.llChris Lattner2007-04-091-2/+10
| | | | llvm-svn: 35792
* Fix a bug introduced with my previous patch, where it didn't correctly handleChris Lattner2007-04-091-7/+9
| | | | | | | instructions which replace themselves when FI's are rewritten (common on ppc). This fixes CodeGen/PowerPC/2006-10-17-ppc64-alloca.ll llvm-svn: 35789
* Eliminate useless insertelement instructions. This implementsChris Lattner2007-04-091-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Transforms/InstCombine/vec_insertelt.ll and fixes PR1286. We now compile the code from that bug into: _foo: movl 4(%esp), %eax movdqa (%eax), %xmm0 movl 8(%esp), %ecx psllw (%ecx), %xmm0 movdqa %xmm0, (%eax) ret instead of: _foo: subl $4, %esp movl %ebp, (%esp) movl %esp, %ebp movl 12(%ebp), %eax movdqa (%eax), %xmm0 #IMPLICIT_DEF %eax pinsrw $2, %eax, %xmm0 xorl %ecx, %ecx pinsrw $3, %ecx, %xmm0 pinsrw $4, %eax, %xmm0 pinsrw $5, %ecx, %xmm0 pinsrw $6, %eax, %xmm0 pinsrw $7, %ecx, %xmm0 movl 8(%ebp), %eax movdqa (%eax), %xmm1 psllw %xmm0, %xmm1 movdqa %xmm1, (%eax) movl %ebp, %esp popl %ebp ret woo :) llvm-svn: 35788
* Cleanup some from my DomSet-removal changes. Add a newOwen Anderson2007-04-091-4/+4
| | | | | | | isReachableFromEntry test to ETForest to factor a common test out of code. llvm-svn: 35786
* Fix CodeGen/Generic/2007-04-08-MultipleFrameIndices.ll and PR1308:Chris Lattner2007-04-091-1/+5
| | | | | | | some instructions can have multiple frame indices in them. If this happens, rewrite all of them. llvm-svn: 35785
* Fix PR1316Chris Lattner2007-04-091-4/+4
| | | | llvm-svn: 35783
* No functional change, this is just easier to read and debug.Reid Spencer2007-04-081-9/+10
| | | | llvm-svn: 35782
* Fix for CodeGen/X86/2007-04-08-InlineAsmCrash.ll and PR1314Chris Lattner2007-04-081-1/+1
| | | | llvm-svn: 35779
* Remove DomSet completely. This concludes work on PR1171.Owen Anderson2007-04-081-96/+0
| | | | llvm-svn: 35775
* Make sure temporary data is not used past its life span.Reid Spencer2007-04-081-2/+2
| | | | llvm-svn: 35773
* Fix a typo that broke SimplifyLibCalls/SPrintF.ll (pr1315)Chris Lattner2007-04-081-1/+1
| | | | llvm-svn: 35768
* reenable this xform, whoops :)Chris Lattner2007-04-081-1/+2
| | | | llvm-svn: 35765
* Fix regression on Instcombine/apint-or2.llChris Lattner2007-04-081-30/+29
| | | | llvm-svn: 35763
* Generalize the code that handles (A&B)|(A&C) to work where B/C are not ↵Chris Lattner2007-04-081-30/+83
| | | | | | | | constants. Add a new xform to simplify (A&B)|(~A&C). THis implements InstCombine/or2.ll:test1 llvm-svn: 35760
* implement a fixme: move optimizations for fwrite out of fputs into a newChris Lattner2007-04-081-26/+56
| | | | | | fwrite optimizer. llvm-svn: 35758
* Remove DominatorSet usage from LoopSimplify. Patch from Owen Anderson.Nick Lewycky2007-04-081-89/+54
| | | | llvm-svn: 35757
* Don't crash when encountering a BasicBlock that hasn't been registered yet.Nick Lewycky2007-04-081-2/+3
| | | | llvm-svn: 35756
OpenPOWER on IntegriCloud