summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
...
* Correctly handle <undef> tied uses when rewriting after a split.Jakob Stoklund Olesen2011-07-242-8/+29
| | | | | | | | | | | 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
* Omit explicit length here, now that I've had a chance to test this with gcc.Frits van Bommel2011-07-241-1/+1
| | | | llvm-svn: 135867
* Set PPCII::MO_DARWIN_STUB only on MacOSX < 10.5.Roman Divacky2011-07-241-2/+2
| | | | llvm-svn: 135866
* clarify that opaque is actually a struct type, PR10430Chris Lattner2011-07-231-5/+5
| | | | llvm-svn: 135861
* how about that, StringRef doesn't allow any mutation, thanks toChris Lattner2011-07-231-4/+4
| | | | | | Frits for straightening me out. llvm-svn: 135856
* 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
* Fix a silly off by one.Benjamin Kramer2011-07-231-1/+1
| | | | llvm-svn: 135842
* We always bounds check the bit set, there is no need to emit zero bytes at ↵Benjamin Kramer2011-07-231-13/+10
| | | | | | the end. llvm-svn: 135841
* Add more constness.Benjamin Kramer2011-07-231-2/+2
| | | | llvm-svn: 135838
* ARMMCTargetDesc.h: Fixup to add DataTypes.h, or uint32_t would be unavailable.NAKAMURA Takumi2011-07-231-0/+1
| | | | llvm-svn: 135837
* Turn the DenseSet in MCRegisterClass into a tblgenerated bit field. This ↵Benjamin Kramer2011-07-233-18/+54
| | | | | | | | should be faster and smaller. Goodbye static ctors and dtors! llvm-svn: 135836
* Give TargetRegisterClass a pointer to the MCRegisterClass and use it to ↵Benjamin Kramer2011-07-232-42/+77
| | | | | | | | | access its data. This makes TargetRegisterClass slightly slower. Next step will be making contains faster. Eventually TargetRegisterClass will be killed entirely. llvm-svn: 135835
* Move TargetAsmParser.h TargetAsmBackend.h and TargetAsmLexer.h to MC where ↵Evan Cheng2011-07-2336-44/+41
| | | | | | they belong. llvm-svn: 135833
* CMake: Fix LLVM_NATIVE_TARGETMC in config.h.cmake.NAKAMURA Takumi2011-07-232-2/+2
| | | | llvm-svn: 135832
* config.h.cmake: Reorder along config.h.in.NAKAMURA Takumi2011-07-231-21/+21
| | | | llvm-svn: 135831
* Move trip count discovery outside of the generic LoopUnroll helper. ThisAndrew Trick2011-07-233-15/+11
| | | | | | 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-229-24/+38
| | | | | | | | | 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-222-29/+77
| | | | | | | so that a declaration for objc_retain is created when needed if it doesn't already exist. rdar://9825114. llvm-svn: 135821
* Teach cmake configured headers about LLVM_NATIVE_TARGETMCOscar Fuentes2011-07-222-10/+4
| | | | llvm-svn: 135820
* Add FIXMEJim Grosbach2011-07-221-0/+3
| | | | llvm-svn: 135819
* ARM encoding and assembly parsing tests for SMULWB, SMULWT, SMUSD and SMUSDX.Jim Grosbach2011-07-221-0/+31
| | | | llvm-svn: 135818
* ARM assembly parsing and encoding updates.Jim Grosbach2011-07-222-1/+31
| | | | | | Tests for SMULBB, SMLALBT, SMLALTB, SMLALTT, and SMULL. Fix parsing of SMULLS. llvm-svn: 135817
* Use the enum value for RegClassIDs.Benjamin Kramer2011-07-221-2/+4
| | | | llvm-svn: 135816
* Combine all MC initialization routines into one. e.g. InitializeX86MCAsmInfo,Evan Cheng2011-07-2229-420/+264
| | | | | | InitializeX86MCInstrInfo, etc. are combined into InitializeX86TargetMC. llvm-svn: 135812
* add section to ToCChris Lattner2011-07-221-3/+6
| | | | llvm-svn: 135811
* ARM assembly parsing and encoding tests.Jim Grosbach2011-07-221-0/+83
| | | | | | | Add tests for SMLSD, SMLSDX, SMLSLD, SMLSLDX, SMMLA, SMMLAR, SMMLS, SMMLSR, SMMUL, SMMULR, SMUAD and SMUADX. llvm-svn: 135810
* write the long-overdue strings section of the data structure guide.Chris Lattner2011-07-221-7/+171
| | | | llvm-svn: 135809
* 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
* Add a method to set the compact unwind info.Bill Wendling2011-07-221-0/+4
| | | | llvm-svn: 135806
* Add a method to get the list of FrameInfos.Bill Wendling2011-07-221-1/+6
| | | | llvm-svn: 135805
* Fix test check!Bruno Cardoso Lopes2011-07-221-1/+1
| | | | llvm-svn: 135802
* Fix PR10422 by adding the necessary AVX UCOMISD memory versions toBruno Cardoso Lopes2011-07-222-2/+36
| | | | | | load folding logic llvm-svn: 135801
* ARM assembly parsing and encoding tests for SMLAWB/SMLAWT.Jim Grosbach2011-07-221-0/+14
| | | | llvm-svn: 135800
* move the section for string-like containers to follow the section for ↵Chris Lattner2011-07-221-18/+19
| | | | | | sequential containers. llvm-svn: 135799
* ARM assembly parsing and encoding tests.Jim Grosbach2011-07-221-1/+37
| | | | | | | Tests for SMLAL, SMLALBB, SMLALBT, SMLALTB, SMLALTT, SMLALD, and SMLALDX instructions. llvm-svn: 135798
* ARM assembly parsing and encoding of SMLAL instruction.Jim Grosbach2011-07-222-1/+15
| | | | | | 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-222-6/+21
| | | | | | Fix encoding of destination register. Add tests. llvm-svn: 135796
* ARM testcases for assembly parsing and encoding SMLA* instructions.Jim Grosbach2011-07-221-0/+21
| | | | llvm-svn: 135795
* Add v8f32->v8i32 bitcast. Fixes PR10440Bruno Cardoso Lopes2011-07-221-0/+1
| | | | llvm-svn: 135794
* Turn shuffles into unpacks for VT == MVT::v2i64 and MVT::v2f64Rafael Espindola2011-07-222-9/+31
| | | | | | too. Patch by Jeff Muizelaar. llvm-svn: 135789
* Fix x86's XALUO lowering to return its replacement values insteadDan Gohman2011-07-221-4/+2
| | | | | | | of doing the RAUW calls for the overflow value itself. This makes it more consistent with how the rest of LegalizeDAG works. llvm-svn: 135788
* llvm-objdump: Don't ignore errors from raw_fd_ostream.Benjamin Kramer2011-07-221-0/+4
| | | | llvm-svn: 135787
* llvm-objdump: Skip branches that leave the current function.Benjamin Kramer2011-07-221-1/+4
| | | | | | | In "normal" code these only happen when disassembling data, so we won't lose anything if we just drop them. llvm-svn: 135786
OpenPOWER on IntegriCloud