summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* Simplify. Testing shows that this is not equivalent to BBI = CR.CaseBB + 1.Duncan Sands2009-09-061-4/+2
| | | | llvm-svn: 81124
* Mark more constants unsigned, as warned about by icc (#68).Duncan Sands2009-09-061-1/+1
| | | | | | Patch by Erick Tryzelaar. llvm-svn: 81116
* Remove some not-really-used variables, as warnedDuncan Sands2009-09-064-14/+2
| | | | | | about by icc (#593, partial). Patch by Erick Tryzelaar. llvm-svn: 81115
* It's a bool, so treat it like one. Fixes a MSVC warning.Benjamin Kramer2009-09-061-4/+4
| | | | llvm-svn: 81112
* Remove some unused variables and methods warned about byDuncan Sands2009-09-062-5/+1
| | | | | | icc (#177, partial). Patch by Erick Tryzelaar. llvm-svn: 81106
* Detect VLAs.Devang Patel2009-09-051-1/+5
| | | | | | Do not use DenseMap operator[] because it inserts new entry if lookup fails. Use find() to check an entry in a DenseMap first. llvm-svn: 81058
* Ignore malformed global variable debug info.Devang Patel2009-09-041-0/+4
| | | | llvm-svn: 81055
* 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
OpenPOWER on IntegriCloud