summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Don't look for leaf values to store when lowering stores ofDan Gohman2008-07-302-2/+24
| | | | | | empty structs. This fixes PR2612. llvm-svn: 54226
* Use existing LiveInterval methods to simplify live interval merging. Thanks ↵Owen Anderson2008-07-301-31/+32
| | | | | | to Evan for pointing these out. llvm-svn: 54225
* I missed this file in r54223. movzbl is now used insteadDan Gohman2008-07-301-1/+1
| | | | | | of movzbw here. llvm-svn: 54224
* Reapply r54147 with a constraint to only use the 8-bitDan Gohman2008-07-305-25/+153
| | | | | | | | | | | subreg form on x86-64, to avoid the problem with x86-32 having GPRs that don't have 8-bit subregs. Also, change several 16-bit instructions to use equivalent 32-bit instructions. These have a smaller encoding and avoid partial-register updates. llvm-svn: 54223
* Use stable sort.Ted Kremenek2008-07-301-2/+2
| | | | llvm-svn: 54222
* "Escape" bug names with quotes for selecting/deselecting from the bug table.Ted Kremenek2008-07-301-5/+3
| | | | llvm-svn: 54220
* Add range highlighting for path-sensitive return-of-stack-address check.Ted Kremenek2008-07-301-5/+18
| | | | llvm-svn: 54219
* Value numbers whose def index is a special sentinel value should not be ↵Owen Anderson2008-07-301-11/+13
| | | | | | remapped. llvm-svn: 54218
* Fixed bug in global address lowering for functions and in Brcond loweringBruno Cardoso Lopes2008-07-301-6/+7
| | | | llvm-svn: 54215
* Removed small section flag for mips, the assembler doesnt support this flagBruno Cardoso Lopes2008-07-302-4/+18
| | | | llvm-svn: 54214
* Added new features to represent specific instructions groupsBruno Cardoso Lopes2008-07-303-8/+45
| | | | llvm-svn: 54213
* Instruction definition cleanupBruno Cardoso Lopes2008-07-301-63/+43
| | | | llvm-svn: 54212
* Change CodeGenModule GlobalDeclMap to directly reference globalsDaniel Dunbar2008-07-303-42/+84
| | | | | | | | | | | | | | | instead of mapping the decl to a bitcast of the global to the correct type. - GetAddrOf{Function,GlobalVar} introduce the bitcast on every use now. - This solves a problem where a dangling pointer could be introduced by the RAUW done when replacing a forward or tentative definition. See testcase for more details. - Fixes <rdar://problem/6108358> llvm-svn: 54211
* Document BasicBlock::Create.Matthijs Kooijman2008-07-301-1/+3
| | | | llvm-svn: 54210
* Not that using stream headers other than iostream is allowed.Matthijs Kooijman2008-07-301-0/+4
| | | | llvm-svn: 54209
* Added support for overloading intrinsics (atomics) based on pointersMon P Wang2008-07-3013-137/+209
| | | | | | | to different address spaces. This alters the naming scheme for those intrinsics, e.g., atomic.load.add.i32 => atomic.load.add.i32.p0i32 llvm-svn: 54195
* Another SCEV issue from PR2607; essentially the same issue, but this Eli Friedman2008-07-302-4/+28
| | | | | | | | | | | time applying to the implicit comparison in smin expressions. The correct way to transform an inequality into the opposite inequality, either signed or unsigned, is with a not expression. I looked through the SCEV code, and I don't think there are any more occurrences of this issue. llvm-svn: 54194
* More fixes for corner cases when remapping live range indices.Owen Anderson2008-07-301-10/+10
| | | | llvm-svn: 54186
* When merging live intervals, we also need to merge in any live ranges that ↵Owen Anderson2008-07-301-13/+42
| | | | | | | | are inputs to two-address instructions that themselves define a range we already care about. llvm-svn: 54185
* Fix for PR2607: SCEV miscomputing the loop count for loops with an Eli Friedman2008-07-302-3/+34
| | | | | | | | | | | | SGT exit condition. Essentially, the correct way to flip an inequality in 2's complement is the not operator, not the negation operator. That said, the difference only affects cases involving INT_MIN. Also, enhance the pre-test search logic to be a bit smarter about inequalities flipped with a not operator, so it can eliminate the smax from the iteration count for simple loops. llvm-svn: 54184
* Fix regression in range highlighting in HTML output.Ted Kremenek2008-07-291-2/+2
| | | | llvm-svn: 54181
* Rework codegen emission of globalsDaniel Dunbar2008-07-297-192/+229
| | | | | | | | | | | | | | | | | | | | - No (intended) functionality change. - Primary purpose is to clearly separate (lazy) construction of globals that are a forward declaration or tentative definition from those that are the final definition. - Lazy construction is now encapsulated in GetAddrOf{Function,GlobalVar} while final definitions are constructed in EmitGlobal{Function,Var}Definition. - External interface for dealing with globals is now limited to EmitGlobal and GetAddrOf{Function,GlobalVar}. - Also updated helper functions dealing with statics, annotations, and ctors to be private. llvm-svn: 54179
* When merging a PHI operand's live interval into the PHI's live interval, we ↵Owen Anderson2008-07-291-9/+17
| | | | | | | | need to merge over all liveranges in the operand's interval that share the relevant value number, not just the range that immediately precedes the PHI. llvm-svn: 54174
* Don't decrement the BB remap when we don't need to.Owen Anderson2008-07-291-8/+4
| | | | llvm-svn: 54173
* Fix PR2609. If a label is deleted, then it needsDuncan Sands2008-07-292-4/+285
| | | | | | | | to be marked invalid regardless of whether it is a debug, an exception handling or (hopefully) a GC label. llvm-svn: 54172
* Changed some methods order.Bruno Cardoso Lopes2008-07-291-45/+46
| | | | llvm-svn: 54169
* Fix broken CellSPU lowering, re-instate braces in LegalizeNate Begeman2008-07-292-6/+5
| | | | llvm-svn: 54168
* Added floating point lowering for select.Bruno Cardoso Lopes2008-07-294-86/+185
| | | | llvm-svn: 54167
* Set the executable bit - means it can actuallyDuncan Sands2008-07-291-0/+0
| | | | | | | be run when installing on sparc sun. Set the mime type to text/x-sh while there. llvm-svn: 54165
* Disable a fix in the previous patch, since it breaks CellSPU.Nate Begeman2008-07-291-2/+4
| | | | | | | The CellSPU codegen is broken, but needs to be fixed before we can put this back in. llvm-svn: 54164
* Fix incomplete implementation for rewriting protocol refs.Steve Naroff2008-07-291-0/+25
| | | | | | <rdar://problem/6108127> clang ObjC rewriter: no translation of id <proto> llvm-svn: 54163
* Fix codegen of chained declarationsDaniel Dunbar2008-07-294-12/+13
| | | | | | | | - Killed useless CodeGenModule::EmitGlobalVarDeclarator, instead just recurse on any ScopedDecl. - Fix for <rdar://problem/6093838> llvm-svn: 54162
* Add vector shifts to the IR, patch by Eli Friedman.Nate Begeman2008-07-2911-319/+361
| | | | | | CodeGen & Clang work coming next. llvm-svn: 54161
* Add -unroll-allow-partial command line option that enabled the loop unroller toMatthijs Kooijman2008-07-292-4/+41
| | | | | | | | partially unroll a loop when fully unrolling would not fit under the threshold. Patch by Mikael Lepistö. llvm-svn: 54160
* Restructure ArgumentPromotion a bit. Instead of just having a single booleanMatthijs Kooijman2008-07-292-99/+260
| | | | | | | | | | | | | that says "unconditional loads from this argument are safe", we now keep track of the safety per set of indices from which loads happen. This prevents ArgPromotion from promoting loads that aren't really valid. As an added effect, this will now disregard the the type of the indices passed to a GEP, so "load GEP %A, i32 1" and "load GEP %A, i64 1" will result in a single argument, not two. This fixes PR2598, for which a testcase has been added as well. llvm-svn: 54159
* Improve bugpoint output a bit by outputting the actual instructions instead ofMatthijs Kooijman2008-07-291-2/+1
| | | | | | | just it's name, which is often empty. Also remove a newline from the output that wasn't really needed. llvm-svn: 54158
* Add a GetElementPtrInst::getIndexedType that accepts uint64_t's instead of ↵Matthijs Kooijman2008-07-292-7/+27
| | | | | | just Value*'s. llvm-svn: 54157
* Fix for PR2578. Do not split off a block whose size is less than ↵Evan Cheng2008-07-291-0/+3
| | | | | | FreeRangeHeader::getMinBlockSize(). Patch by Damien. llvm-svn: 54152
* add a crazy ideaChris Lattner2008-07-291-0/+6
| | | | llvm-svn: 54151
* Revert 54147.Dan Gohman2008-07-295-98/+0
| | | | llvm-svn: 54148
* Add x86 isel patterns to match what would be a ZERO_EXTEND_INREG operation,Dan Gohman2008-07-285-0/+98
| | | | | | | | which is represented in codegen as an 'and' operation. This matches them with movz instructions, instead of leaving them to be matched by and instructions with an immediate field. llvm-svn: 54147
* Fold the useful features of alist and alist_node into ilist, andDan Gohman2008-07-2833-815/+340
| | | | | | | | | | | | | | | | a new ilist_node class, and remove them. Unlike alist_node, ilist_node doesn't attempt to manage storage itself, so it avoids the associated problems, including being opaque in gdb. Adjust the Recycler class so that it doesn't depend on alist_node. Also, change it to use explicit Size and Align parameters, allowing it to work when the largest-sized node doesn't have the greatest alignment requirement. Change MachineInstr's MachineMemOperand list from a pool-backed alist to a std::list for now. llvm-svn: 54146
* Don't remove volatile loads. Thanks to Duncan for noticing this one.Owen Anderson2008-07-281-1/+1
| | | | llvm-svn: 54144
* Remove extra linesBill Wendling2008-07-281-3/+0
| | | | llvm-svn: 54143
* Disable gp_rel relocation for constant pools access for now.Bruno Cardoso Lopes2008-07-281-7/+11
| | | | llvm-svn: 54142
* Since build_vector is a variadic node, the numberDuncan Sands2008-07-281-1/+1
| | | | | | of operands should be -1 not 0. llvm-svn: 54141
* This is not a binary file.Duncan Sands2008-07-280-0/+0
| | | | llvm-svn: 54140
* Added floating point lowering for setcc and brcond.Bruno Cardoso Lopes2008-07-287-30/+158
| | | | | | | Fixed COMM asm directive usage. ConstantPool using custom FourByteConstantSection. llvm-svn: 54139
* Test this differently: I saw this test failDuncan Sands2008-07-281-1/+1
| | | | | | | | | because opt exited while llvm-as was still writing to the pipe, causing it to get a SIGPIPE. It seems best to change things to avoid the race altogether. llvm-svn: 54138
* Don't build with 4.0.Bill Wendling2008-07-281-2/+1
| | | | llvm-svn: 54137
OpenPOWER on IntegriCloud