summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Change the other half of aliasGEP (which handles GEP differencing) to use ↵Chris Lattner2009-11-261-466/+108
| | | | | | DecomposeGEPExpression. This dramatically simplifies and shrinks the code by eliminating the horrible CheckGEPInstructions method, fixes a miscompilation (@test3) and makes the code more aggressive. In particular, we now handle the @test4 case, which is reduced from the SmallPtrSet constructor. Missing this caused us to emit a variable length memset instead of a fixed size one. llvm-svn: 89922
* Generalize DecomposeGEPExpression to exactly handle what ↵Chris Lattner2009-11-261-30/+62
| | | | | | Value::getUnderlyingObject does (when TD is around). This allows us to avoid calling DecomposeGEPExpression unless the ultimate alias check we care about passes, speedup up BasicAA a bit. llvm-svn: 89920
* Implement a new DecomposeGEPExpression method, which decomposes a GEP into a ↵Chris Lattner2009-11-261-40/+121
| | | | | | list of scaled offsets. Use this to eliminate some previous ad-hoc code which was subtly broken (it assumed all Constant*'s were non-zero, but strange constant express could be zero). llvm-svn: 89915
* Use GEPOperator more pervasively to simplify code.Chris Lattner2009-11-261-29/+27
| | | | llvm-svn: 89914
* update some notes slightlyChris Lattner2009-11-261-3/+5
| | | | llvm-svn: 89913
* remove some redundant bracesChris Lattner2009-11-261-4/+2
| | | | llvm-svn: 89912
* When all defs of a vr are implicit_def, delete all of the defs.Evan Cheng2009-11-261-2/+6
| | | | llvm-svn: 89905
* Split tail duplication into a separate pass. This is needed to avoidBob Wilson2009-11-266-239/+310
| | | | | | | | | running tail duplication when doing branch folding for if-conversion, and we also want to be able to run tail duplication earlier to fix some reg alloc problems. Move the CanFallThrough function from BranchFolding to MachineBasicBlock so that it can be shared by TailDuplication. llvm-svn: 89904
* Rollback changes r89516: Added two SubtargetFeatures::AddFeatures methods, ↵Viktor Kutuzov2009-11-251-27/+0
| | | | | | which accept a comma-separated string or already parsed command line parameters as input, and some code re-factoring to use these new methods. llvm-svn: 89893
* ProcessImplicitDefs should watch out for invalidated iterator and extra ↵Evan Cheng2009-11-251-14/+45
| | | | | | implicit operands on copies. llvm-svn: 89880
* Tail duplicate indirect branches for PowerPC, too.Bob Wilson2009-11-251-0/+2
| | | | | | | With the testcase for pr3120, the "threaded interpreter" runtime decreases from 1788 to 1413 with this change. llvm-svn: 89877
* Avoid some possibly unsafe uses of StringRef::data().Benjamin Kramer2009-11-252-7/+5
| | | | llvm-svn: 89873
* Use StringRef (again) in DebugInfo interface.Devang Patel2009-11-254-93/+97
| | | | llvm-svn: 89866
* Based on the testcase for pr3120, running on my MacPro with Xeon processors,Bob Wilson2009-11-251-0/+2
| | | | | | | it is definitely profitable to tail duplicate indirect branches for x86. This is likely to be true to various degrees for all modern x86 processors. llvm-svn: 89865
* Support PIC loading of constant pool entriesBruno Cardoso Lopes2009-11-252-13/+20
| | | | llvm-svn: 89863
* Sketch structure for X86 disassembler.Daniel Dunbar2009-11-254-1/+52
| | | | llvm-svn: 89850
* API change Path::isSpecialFile to Path::isRegularFile, improve semantics in ↵Edward O'Callaghan2009-11-252-7/+9
| | | | | | regards to comments from 89765 post review. llvm-svn: 89848
* Perform explicit instantiations in the proper namespace, since Clang ↵Douglas Gregor2009-11-251-0/+2
| | | | | | diagnoses this ill-formity. llvm-svn: 89846
* Reverting patch in revision 89758, initial attempt at fixing PR5373 has ↵Edward O'Callaghan2009-11-251-0/+1
| | | | | | proven to be bogus. llvm-svn: 89844
* Use endianess dependent offsets for load/store of doubles whenBruno Cardoso Lopes2009-11-251-0/+8
| | | | | | using two swc/lwc instead of sdc/ldc. llvm-svn: 89826
* Fix compiler warnings.Dale Johannesen2009-11-251-4/+4
| | | | llvm-svn: 89824
* Only include in the callee saved regs the sub registers to avoidBruno Cardoso Lopes2009-11-251-5/+2
| | | | | | unnecessary save/restore. llvm-svn: 89823
* Add proper emission of load/store double to stack slots for mips1 targets!Bruno Cardoso Lopes2009-11-251-21/+43
| | | | llvm-svn: 89821
* Revert r89803.Devang Patel2009-11-251-3/+0
| | | | llvm-svn: 89819
* Refactor target hook for tail duplication as requested by Chris.Bob Wilson2009-11-243-11/+15
| | | | | | | | | | | | Make tail duplication of indirect branches much more aggressive (for targets that indicate that it is profitable), based on further experience with this transformation. I compiled 3 large applications with and without this more aggressive tail duplication and measured minimal changes in code size. ("size" on Darwin seems to round the text size up to the nearest page boundary, so I can only say that any code size increase was less than one 4k page.) Radar 7421267. llvm-svn: 89814
* Do not store R31 into the caller's link area on PPC.Dale Johannesen2009-11-242-6/+17
| | | | | | | | | | | | This violates the ABI (that area is "reserved"), and while it is safe if all code is generated with current compilers, there is some very old code around that uses that slot for something else, and breaks if it is stored into. Adjust testcases looking for current behavior. I've verified that the stack frame size is right in all testcases, whether it changed or not. 7311323. llvm-svn: 89811
* Enable debug info for ppc-darwin.Devang Patel2009-11-241-0/+3
| | | | llvm-svn: 89803
* Use StringRef instead of std::string in DIEString.Devang Patel2009-11-244-5/+5
| | | | llvm-svn: 89793
* Remove DebugLabelFolder pass. It is not used by dwarf writer anymore.Devang Patel2009-11-242-76/+0
| | | | llvm-svn: 89790
* Swith to pubtypes section before emitting pub types.Devang Patel2009-11-241-0/+3
| | | | llvm-svn: 89787
* Remove bogus error handling code.Daniel Dunbar2009-11-241-6/+2
| | | | llvm-svn: 89786
* Provide Path::isSpecialFile interface for PR5568.Edward O'Callaghan2009-11-242-2/+25
| | | | llvm-svn: 89765
* Fix for PR5373, Credit to Jakub Staszak.Edward O'Callaghan2009-11-241-1/+0
| | | | llvm-svn: 89758
* Enable predication of NEON instructions in Thumb2 mode.Evan Cheng2009-11-241-5/+1
| | | | llvm-svn: 89748
* Emit pubtypes.Devang Patel2009-11-243-23/+127
| | | | llvm-svn: 89725
* Make capitalization of names starting "is" more consistent.Dale Johannesen2009-11-243-43/+43
| | | | | | No functional change. llvm-svn: 89724
* Data type suffix must come after predicate.Evan Cheng2009-11-241-2/+2
| | | | llvm-svn: 89723
* <rdar://problem/6721894>. Allow multiple registers to be renamed together ↵David Goodwin2009-11-241-6/+0
| | | | | | (super and sub) if necessary to break an anti-dependence. llvm-svn: 89722
* Materialize global addresses via movt/movw pair, this is always betterAnton Korobeynikov2009-11-2410-41/+127
| | | | | | | | | | | | | than doing the same via constpool: 1. Load from constpool costs 3 cycles on A9, movt/movw pair - just 2. 2. Load from constpool might stall up to 300 cycles due to cache miss. 3. Movt/movw does not use load/store unit. 4. Less constpool entries => better compiler performance. This is only enabled on ELF systems, since darwin does not have needed relocations (yet). llvm-svn: 89720
* 80 column violationsJim Grosbach2009-11-241-8/+8
| | | | llvm-svn: 89718
* * Move stub allocation inside the JITEmitter, instead of exposing aJeffrey Yasskin2009-11-239-110/+145
| | | | | | | | | | | | | | way for each TargetJITInfo subclass to allocate its own stubs. This means stubs aren't as exactly-sized anymore, but it lets us get rid of TargetJITInfo::emitFunctionStubAtAddr(), which lets ARM and PPC support the eager JIT, fixing http://llvm.org/PR4816. * Rename the JITEmitter's stub creation functions to describe the kind of stub they create. So far, all of them create lazy-compilation stubs, but they sometimes get used when far-call stubs are needed. Fixing http://llvm.org/PR5201 will involve fixing this. llvm-svn: 89715
* enable iv-users simplification by defaultJim Grosbach2009-11-231-7/+1
| | | | llvm-svn: 89713
* Remove ISD::DEBUG_LOC and ISD::DBG_LABEL, which are no longer used.Dan Gohman2009-11-2319-86/+0
| | | | | | | | Note that "hasDotLocAndDotFile"-style debug info was already broken; people wanting this functionality should implement it in the AsmPrinter/DwarfWriter code. llvm-svn: 89711
* Allow more than one stub to be being generated at the same time.Jeffrey Yasskin2009-11-235-52/+46
| | | | | | | | It's probably better in the long run to replace the indirect-GlobalVariable system. That'll be done after a subsequent patch. llvm-svn: 89708
* Massive refactoring of NEON instructions. Separate opcode from data size ↵Evan Cheng2009-11-232-858/+1012
| | | | | | | | specifier suffix, move \t up stream to instruction format, and fix more 80 column violations. This fixes the NEON asm printing so the "predicate" field is printed between the opcode and the data type suffix. llvm-svn: 89706
* Simplify this code.Dan Gohman2009-11-231-1/+1
| | | | llvm-svn: 89702
* Print the debug info line and column in MachineInstr::print even when there'sDan Gohman2009-11-231-2/+3
| | | | | | no filename. This situation is apparently fairly common right now. llvm-svn: 89701
* move fconst[sd] to UAL. <rdar://7414913>Jim Grosbach2009-11-232-4/+4
| | | | llvm-svn: 89700
* Partially revert r84730 by removing N2VDup from ARMInstrFormats.td and modifyingJohnny Chen2009-11-232-37/+21
| | | | | | | VDUPLND and VDUPLNQ to derive from N2V instead of N2VDup. VDUPLND and VDUPLNQ now expect op19_18 and op17_16 as the first two args. llvm-svn: 89699
* fold immediate of a + Const into the user as a subtract if it can fit as a ↵Jim Grosbach2009-11-232-6/+37
| | | | | | negated two-part immediate. llvm-svn: 89694
OpenPOWER on IntegriCloud