summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
...
* Replaces uses of unsigned for indexes in LiveInterval and VNInfo withLang Hames2009-09-0410-447/+517
| | | | | | | | a new class, MachineInstrIndex, which hides arithmetic details from most clients. This is a step towards allowing the register allocator to update/insert code during allocation. llvm-svn: 81040
* Use delete[] to match new[] (found by valgrind).Duncan Sands2009-09-041-1/+1
| | | | llvm-svn: 80997
* Run branch folding if if-converter make some transformations.Evan Cheng2009-09-043-84/+155
| | | | llvm-svn: 80994
* Fix comment for consistency sake.Evan Cheng2009-09-041-1/+1
| | | | llvm-svn: 80993
* If there's a calling convention attach it to the rewind function call.Eric Christopher2009-09-041-1/+3
| | | | llvm-svn: 80976
* Funky indentation.Evan Cheng2009-09-031-1/+2
| | | | llvm-svn: 80971
* LLVM currently represents floating-point negation as -0.0 - x. FixDan Gohman2009-09-031-0/+23
| | | | | | | FastISel to recognize this pattern and emit a floating-point negation using xor. llvm-svn: 80963
* Don't crash when target has no itineraries.David Goodwin2009-09-031-54/+58
| | | | llvm-svn: 80962
* Create our own block initializer for kill fixups as the scheduling one ↵David Goodwin2009-09-031-33/+63
| | | | | | wasn't doing the right thing. llvm-svn: 80958
* Overhaul the TwoAddressInstructionPass to simplify the logic, especiallyBob Wilson2009-09-031-159/+210
| | | | | | | | | | | | | | | | | for the complicated case where one register is tied to multiple destinations. This avoids the extra scan of instruction operands that was introduced by my recent change. I also pulled some code out into a separate TryInstructionTransform method, added more comments, and renamed some variables. Besides all those changes, this takes care of a FIXME in the code regarding an assumption about there being a single tied use of a register when converting to a 3-address form. I'm not aware of cases where that assumption is violated, but the code now only attempts to transform an instruction, either by commuting its operands or by converting to a 3-address form, for the simple case where there is a single pair of tied operands. llvm-svn: 80945
* Recognize more opportunities to use SSE min and max instructions,Dan Gohman2009-09-031-0/+13
| | | | | | swapping the operands if necessary. llvm-svn: 80940
* Fixed a test that ensures the LocalRewriter does not attempt toLang Hames2009-09-032-2/+2
| | | | | | | | | avoid reloads by reusing clobbered registers. This was causing issues in 256.bzip2 when compiled with PIC for a while (starting at r78217), though the problem has since been masked. llvm-svn: 80872
* Rearrange code to eliminate redundancy and avoid gotos.Bob Wilson2009-09-021-64/+40
| | | | llvm-svn: 80798
* Retype from unsigned to CallingConv::ID accordingly. Approved by Bob Wilson.Sandeep Patel2009-09-022-3/+4
| | | | llvm-svn: 80773
* Avoid calling removeVirtualRegisterKilled which iterates over the operandsBob Wilson2009-09-011-1/+2
| | | | | | to find the kill, since we already have the operand. llvm-svn: 80736
* Refactor some code into separate functions. No functional changes.Bob Wilson2009-09-011-52/+82
| | | | llvm-svn: 80733
* Move use of LV inside condition that guards for null LV.Bob Wilson2009-09-011-5/+5
| | | | llvm-svn: 80731
* Remove Offset from ExternalSybmol MachineOperands, this is unused (and at ↵Daniel Dunbar2009-09-011-1/+1
| | | | | | least partly unsupported, in X86 encoding at least). llvm-svn: 80726
* Fix ELF Writter related memory leaksBruno Cardoso Lopes2009-09-011-7/+18
| | | | llvm-svn: 80717
* reduce size of SmallString to something more reasonableJim Grosbach2009-09-011-1/+1
| | | | llvm-svn: 80710
* Use raw_ostream instead of sstreamJim Grosbach2009-09-011-7/+5
| | | | llvm-svn: 80704
* Add hidden flags to allow binary search of post-RA scheduling errors.David Goodwin2009-09-011-0/+21
| | | | llvm-svn: 80702
* revert inadvertant change from previous commitJim Grosbach2009-09-011-2/+3
| | | | llvm-svn: 80689
* Simply LSDA lable emission to use a direct special-case output instead ofJim Grosbach2009-09-013-21/+12
| | | | | | EmitLabel() llvm-svn: 80677
* Fix pr4843: When an instruction has multiple destination registers that areBob Wilson2009-09-011-11/+55
| | | | | | | | | tied to different source registers, the TwoAddressInstructionPass needs to be smarter. Change it to check before replacing a source register whether that source register is tied to a different destination register, and if so, defer handling it until a subsequent iteration. llvm-svn: 80654
* Clean up LSDA name generation and use for SJLJ exception handling. ThisJim Grosbach2009-09-013-12/+25
| | | | | | | | | | | makes an eggregious hack somewhat more palatable. Bringing the LSDA forward and making it a GV available for reference would be even better, but is beyond the scope of what I'm looking to solve at this point. Objective C++ code could generate function names that broke the previous scheme. This fixes that. llvm-svn: 80649
* Subprogram is a scope. Derive DISubprogram from DIScope.Devang Patel2009-08-312-4/+18
| | | | llvm-svn: 80637
* Rename DIBlock as DILexicalBlock.Devang Patel2009-08-311-1/+1
| | | | llvm-svn: 80633
* Use early exit and reduce indentation.Bob Wilson2009-08-311-157/+157
| | | | llvm-svn: 80631
* If the tied registers are already the same, there is no need to changeBob Wilson2009-08-311-5/+5
| | | | | | them. Move the code to make that change inside the conditional. llvm-svn: 80630
* Add flag to mark structs for Apple Block "byref" variables; also add code toCaroline Tice2009-08-312-2/+254
| | | | | | | modify the type and location debug information for these variables to match the programmer's expectations. llvm-svn: 80625
* Don't mark a register live at an undef use.David Goodwin2009-08-311-13/+8
| | | | llvm-svn: 80621
* Simplify isDerivedType() and other predicate interface.Devang Patel2009-08-311-3/+3
| | | | llvm-svn: 80602
* Output a hex value, because all of the others are hex.Bill Wendling2009-08-311-1/+1
| | | | llvm-svn: 80601
* Revert commit 80428. It completely broke exceptionDuncan Sands2009-08-311-30/+17
| | | | | | handling on x86-32 linux. llvm-svn: 80592
* PR4747Jim Grosbach2009-08-312-36/+23
| | | | | | | | | | | | | Shared landing pads run into trouble with SJLJ, as the dispatch table is mapped to call sites, and merging the pads will throw that off. There needs to be a one-to-one mapping of landing pad exception table entries to invoke call points. Detecting the shared pad during lowering of SJLJ info insn't sufficient, as the dispatch function may still need separate destinations to properly handle phi-nodes. llvm-svn: 80530
* Nuke moribund "std::string" version of EOL(..., Encoding).Bill Wendling2009-08-301-8/+0
| | | | llvm-svn: 80466
* - Add target lowering methods to get the preferred format for the FDE and LSDABill Wendling2009-08-291-17/+30
| | | | | | | | | encodings. - Make some of the values emitted by the FDEs dependent upon the pointer size. This is in line with how GCC does things. And it has the benefit of working for Darwin in 64-bit mode now. llvm-svn: 80428
* Add a form of EOL which emits the text version of a DWARF format encoding. ThisBill Wendling2009-08-291-0/+50
| | | | | | doesn't handle all values of the formatting. Those can be added as needed. llvm-svn: 80427
* Make the augmentation size and next set of bytes agree on size,Eric Christopher2009-08-291-4/+10
| | | | | | | | | and make the reference pointer size as it should be. Fixes an abort on a testcase derived from libunwind's personality test in 64-bit. llvm-svn: 80414
* Another stab at fixing up register kill flags after post-RA scheduling.David Goodwin2009-08-291-20/+63
| | | | llvm-svn: 80410
* Reapply 79977.Devang Patel2009-08-289-136/+134
| | | | | | Use MDNodes to encode debug info in llvm IR. llvm-svn: 80406
* Nuke trailing whitespace.Eric Christopher2009-08-281-9/+9
| | | | llvm-svn: 80401
* Closure is a very generic name. Use AppleBlock instead.Devang Patel2009-08-271-1/+1
| | | | llvm-svn: 80307
* Adjust the MachineBasicBlock verifier rules to be moreDan Gohman2009-08-271-11/+14
| | | | | | tolerant of blocks that end with "unreachable". llvm-svn: 80270
* Revert accidental commit.Bill Wendling2009-08-272-221/+28
| | | | llvm-svn: 80198
* --- Reverse-merging r80147 into '.':Bill Wendling2009-08-272-28/+221
| | | | | | | | | | | | | | | | | | | | | | A include/llvm/ADT/iterator.cmake U autoconf/configure.ac --- Reverse-merging r80161 into '.': U cmake/config-ix.cmake --- Reverse-merging r80171 into '.': U Makefile --- Reverse-merging r80173 into '.': U configure U include/llvm/Config/config.h.in --- Reverse-merging r80180 into '.': A include/llvm/ADT/iterator.h.in Despite common miscomceptions, iterator.h is alive and well. It broke the build bots for several hours. And yet no one bothered to look at them. Gabor and Doug, please review your changes and make sure that they actually build before resubmitting them. llvm-svn: 80197
* Add some checks for MachineCFG consistency. Use AnalyzeBranch andDan Gohman2009-08-271-0/+133
| | | | | | | do extra checking when it succeeds, as those are cases where CodeGen will be doing particularly interesting CFG modifications. llvm-svn: 80196
* Rework getPersonalityIndex slightly - 0 is now a valid and not-NULLEric Christopher2009-08-261-3/+3
| | | | | | personality function. llvm-svn: 80153
* If we're emitting additional CIEs due to personality functionsEric Christopher2009-08-262-3/+8
| | | | | | | don't emit the default one. Explicitly check for the NULL CIE later. llvm-svn: 80146
OpenPOWER on IntegriCloud