summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix last bits of MC layer issues. llvm-mc doesn't need to initialize ↵Evan Cheng2011-07-255-54/+20
| | | | | | TargetMachine's anymore. llvm-svn: 135963
* ARM asm operand renaming. Make things a bit more explicit.Jim Grosbach2011-07-252-32/+32
| | | | llvm-svn: 135959
* More simple cleanup of ARM asm operand definitions.Jim Grosbach2011-07-252-28/+13
| | | | llvm-svn: 135958
* Code clean up.Evan Cheng2011-07-255-23/+1
| | | | llvm-svn: 135954
* Refactor MBlaze target to separate MC routines from Target routines.Evan Cheng2011-07-2515-190/+216
| | | | llvm-svn: 135953
* Update the comment. This feature is available only on Darwin at the moment. ↵Bill Wendling2011-07-251-1/+2
| | | | | | Though it's not Darwin-specific. llvm-svn: 135951
* Make assembly parser method names more consistent.Jim Grosbach2011-07-253-28/+28
| | | | llvm-svn: 135950
* Unbreak the build.Oscar Fuentes2011-07-251-0/+1
| | | | llvm-svn: 135949
* Tidy up formatting.Jim Grosbach2011-07-251-50/+18
| | | | | | | | Remove some inititalizers that are the same as the default, move defs next to their (singular) uses and generally simplify some formatting of asm operand definitions. llvm-svn: 135946
* Tidy up a bit.Jim Grosbach2011-07-251-8/+2
| | | | llvm-svn: 135945
* Missed a file.Evan Cheng2011-07-251-0/+70
| | | | llvm-svn: 135943
* Refactor PPC target to separate MC routines from Target routines.Evan Cheng2011-07-2514-97/+57
| | | | llvm-svn: 135942
* More refactoring.Evan Cheng2011-07-259-53/+53
| | | | llvm-svn: 135939
* Rename BlockFrequency to BlockFrequencyInfo and MachineBlockFrequency toJakub Staszak2011-07-256-25/+26
| | | | | | MachineBlockFrequencyInfo. llvm-svn: 135937
* Refactor X86 target to separate MC code from Target code.Evan Cheng2011-07-2512-555/+589
| | | | llvm-svn: 135930
* Changed disabled code into a flag.Bill Wendling2011-07-251-1/+7
| | | | llvm-svn: 135924
* Remove dead variable.Bill Wendling2011-07-251-1/+0
| | | | llvm-svn: 135923
* After we've modified the prolog to save volatile registers, generate the compactBill Wendling2011-07-252-5/+250
| | | | | | | | | | | unwind encoding for that function. This simply crawls through the prolog looking for machine instrs marked as "frame setup". It can calculate from these what the compact unwind should look like. This is currently disabled because of needed linker support. But initial tests look good. llvm-svn: 135922
* Move some ELF directives into ELF asm parser.Jim Grosbach2011-07-254-12/+78
| | | | | | | | | | | | | | The .local, .hidden, .internal, and .protected are not legal for all supported file formats (in particular, they're invalid for MachO). Move the parsing for them into the ELF assembly parser since that's the format they're for. Similarly, .weak is used by COFF and ELF, but not MachO, so move the parsing to the COFF and ELF asm parsers. Previously, using any of these directives on Darwin would result in an assertion failure in the parser; now we get a diagnostic as we should. rdar://9827089 llvm-svn: 135921
* Tidy up. 80 columns.Jim Grosbach2011-07-251-5/+10
| | | | llvm-svn: 135917
* Add an RS_Split2 stage used for loop prevention.Jakob Stoklund Olesen2011-07-251-15/+24
| | | | | | | | | | | | | | | | This mechanism already exists, but the RS_Split2 stage makes it clearer. When live range splitting creates ranges that may not be making progress, they are marked RS_Split2 instead of RS_New. These ranges may be split again, but only in a way that can be proven to make progress. For local ranges, that means they must be split into ranges used by strictly fewer instructions. For global ranges, region splitting is bypassed and the RS_Split2 ranges go straight to per-block splitting. llvm-svn: 135912
* Rename live range stages to better reflect how they are used.Jakob Stoklund Olesen2011-07-251-32/+40
| | | | | | | | | | | | The stage is used to control where a live range is going, not where it is coming from. Live ranges created by splitting will usually be marked RS_New, but some are marked RS_Spill to avoid wasting time trying to split them again. The old RS_Global and RS_Local stages are merged - they are really the same thing for local and global live ranges. llvm-svn: 135911
* Shorten some expressions by using ArrayRef::slice().Frits van Bommel2011-07-252-4/+2
| | | | llvm-svn: 135910
* Use ArrayRef in the (protected) constructors of ConstantArray, ↵Jay Foad2011-07-251-27/+12
| | | | | | ConstantStruct and ConstantVector. llvm-svn: 135905
* Convert GetElementPtrInst to use ArrayRef.Jay Foad2011-07-2520-145/+63
| | | | llvm-svn: 135904
* switch Triple to take twines instead of stringrefs.Chris Lattner2011-07-241-5/+0
| | | | llvm-svn: 135889
* Add Twine support for characters, and switch twine to use a union internallyChris Lattner2011-07-241-27/+33
| | | | | | to eliminate some casting. llvm-svn: 135888
* Never extend live ranges for <undef> uses.Jakob Stoklund Olesen2011-07-241-1/+1
| | | | llvm-svn: 135886
* Correctly handle <undef> tied uses when rewriting after a split.Jakob Stoklund Olesen2011-07-241-8/+4
| | | | | | | | | | | This fixes PR10463. A two-address instruction with an <undef> use operand was incorrectly rewritten so the def and use no longer used the same register, violating the tie constraint. Fix this by always rewriting <undef> operands with the register a def operand would use. llvm-svn: 135885
* Set PPCII::MO_DARWIN_STUB only on MacOSX < 10.5.Roman Divacky2011-07-241-2/+2
| | | | llvm-svn: 135866
* Add RAGreedy::calcCompactRegion.Jakob Stoklund Olesen2011-07-231-0/+46
| | | | | | | | | | | | | | | | This method computes the edge bundles that should be live when splitting around a compact region. This is independent of interference. The function returns false if the live range was already a compact region, or the compact region doesn't have any live bundles - it would be the same as splitting around basic blocks. Compact regions are computed using the normal spill placement code. We pretend there is interference in all live-through blocks that don't use the live range. This removes all edges from the Hopfield network used for spill placement, so it converges instantly. llvm-svn: 135847
* Fix bug in SplitEditor::splitLiveThroughBlock when switching registers.Jakob Stoklund Olesen2011-07-231-5/+14
| | | | | | | | | | | If there is no interference and no last split point, we cannot enterIntvBefore(Stop) - that function needs a real instruction. Use enterIntvAtEnd instead for that very easy case. This code doesn't currently run, it is needed by multi-way splitting. llvm-svn: 135846
* Prepare RAGreedy::growRegion for compact regions.Jakob Stoklund Olesen2011-07-231-1/+8
| | | | | | | | | | | | | | | A split candidate can have a null PhysReg which means that it doesn't map to a real interference pattern. Instead, pretend that all through blocks have interference. This makes it possible to generate compact regions where the live range doesn't go through blocks that don't use it. The live range will still be live between directly connected blocks with uses. Splitting around a compact region tends to produce a live range with a high spill weight, so it may evict a less dense live range. llvm-svn: 135845
* Add a simple method for marking blocks with interference in and out.Jakob Stoklund Olesen2011-07-232-0/+18
| | | | | | | | | | This method matches addLinks - All the listed blocks are considered to have interference, so they add a negative bias to their bundles. This could also be done by addConstraints, but that requires building a separate BlockConstraint array. llvm-svn: 135844
* Allow null interference cursors to be queried.Jakob Stoklund Olesen2011-07-232-2/+6
| | | | | | They always report 'no interference'. llvm-svn: 135843
* ARMMCTargetDesc.h: Fixup to add DataTypes.h, or uint32_t would be unavailable.NAKAMURA Takumi2011-07-231-0/+1
| | | | llvm-svn: 135837
* Move TargetAsmParser.h TargetAsmBackend.h and TargetAsmLexer.h to MC where ↵Evan Cheng2011-07-2331-40/+37
| | | | | | they belong. llvm-svn: 135833
* Move trip count discovery outside of the generic LoopUnroll helper. ThisAndrew Trick2011-07-232-14/+9
| | | | | | removes its dependence on canonical induction variables. llvm-svn: 135829
* whitespaceAndrew Trick2011-07-232-15/+15
| | | | llvm-svn: 135828
* createXXXMCCodeGenInfo should be static.Evan Cheng2011-07-2312-23/+23
| | | | llvm-svn: 135826
* Sink ARM mc routines into MCTargetDesc.Evan Cheng2011-07-2313-68/+78
| | | | llvm-svn: 135825
* ARM SSAT instruction 5-bit immediate handling.Jim Grosbach2011-07-228-23/+37
| | | | | | | | | The immediate is in the range 1-32, but is encoded as 0-31 in a 5-bit bitfield. Update the representation such that we store the operand as 0-31, allowing us to remove the encoder method and the special case handling in the disassembler. Update the assembly parser and the instruction printer accordingly. llvm-svn: 135823
* Move the last uses of RetainFunc etc. over to using getRetainCallee() etc.Dan Gohman2011-07-221-23/+35
| | | | | | | so that a declaration for objc_retain is created when needed if it doesn't already exist. rdar://9825114. llvm-svn: 135821
* ARM assembly parsing and encoding updates.Jim Grosbach2011-07-221-1/+1
| | | | | | Tests for SMULBB, SMLALBT, SMLALTB, SMLALTT, and SMULL. Fix parsing of SMULLS. llvm-svn: 135817
* Combine all MC initialization routines into one. e.g. InitializeX86MCAsmInfo,Evan Cheng2011-07-2217-300/+239
| | | | | | InitializeX86MCInstrInfo, etc. are combined into InitializeX86TargetMC. llvm-svn: 135812
* Emit the __compact_unwind section first. If there are any frames which weren'tBill Wendling2011-07-221-14/+27
| | | | | | emitted, emit them next as CIE/FDEs. llvm-svn: 135807
* Fix PR10422 by adding the necessary AVX UCOMISD memory versions toBruno Cardoso Lopes2011-07-221-2/+8
| | | | | | load folding logic llvm-svn: 135801
* ARM assembly parsing and encoding of SMLAL instruction.Jim Grosbach2011-07-221-1/+1
| | | | | | Fix parsing of carry-setting variant SMLALS and add tests. llvm-svn: 135797
* ARM encoding and assembly parsing of SMLAD{X} instructions.Jim Grosbach2011-07-221-6/+8
| | | | | | Fix encoding of destination register. Add tests. llvm-svn: 135796
* Add v8f32->v8i32 bitcast. Fixes PR10440Bruno Cardoso Lopes2011-07-221-0/+1
| | | | llvm-svn: 135794
OpenPOWER on IntegriCloud