summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* 80 column violation.Evan Cheng2009-10-161-1/+2
| | | | llvm-svn: 84244
* Fix more NEON instruction encodings.Bob Wilson2009-10-161-2/+2
| | | | | | Patch by Johnny Chen. llvm-svn: 84243
* Add half precision floating point support (float16) to APFloat,Chris Lattner2009-10-161-1/+69
| | | | | | patch by Peter Johnson! (PR5195) llvm-svn: 84239
* add haiku support, patch by Paul Davey!Chris Lattner2009-10-161-0/+3
| | | | llvm-svn: 84238
* MC: Set symbol values in MachO MCStreamer.Daniel Dunbar2009-10-161-1/+3
| | | | llvm-svn: 84236
* Minor formatting tweaks.Daniel Dunbar2009-10-162-34/+34
| | | | llvm-svn: 84235
* MC: Switch assembler API to using MCExpr instead of MCValue.Daniel Dunbar2009-10-162-31/+41
| | | | llvm-svn: 84234
* MC: Remove unneeded context argument to MCExpr::Evaluate*.Daniel Dunbar2009-10-162-9/+8
| | | | llvm-svn: 84233
* MC: Tweak variable assignment diagnostics, and make reassignment of non-absoluteDaniel Dunbar2009-10-161-0/+1
| | | | | | variables and symbols invalid. llvm-svn: 84232
* MC: When parsing a variable reference, substitute absolute variables immediatelyDaniel Dunbar2009-10-161-1/+4
| | | | | | since they are allowed to be redefined. llvm-svn: 84230
* MC: Move assembler variable values from MCContext to MCSymbol.Daniel Dunbar2009-10-161-2/+5
| | | | llvm-svn: 84229
* MC: Switch MCContext value table to storing MCExprs.Daniel Dunbar2009-10-162-21/+3
| | | | llvm-svn: 84228
* When checking aliases between phi sources and V2, we know the sources are ↵Evan Cheng2009-10-161-3/+3
| | | | | | not themselves phi nodes. However, V2 may be. Call aliasCheck with V2 first to potentially eliminate a std::swap call. llvm-svn: 84226
* Revert svn r80498 and replace it with a different solution. The only problemBob Wilson2009-10-151-12/+4
| | | | | | | | | | | | | | I can see with the original code was that I forgot that this runs after type legalization and hence the result type will always be i32. (Custom legalization of EXTRACT_VECTOR_ELT is only enabled for vector types with 8- and 16-bit elements.) Regarding the FIXME comment: any information about sign and zero-extension should be captured by separate extension operations. The DAG combiner should handle those to produce either VGETLANEu or VGETLANEs, and that seems to be working now. If there are cases that we're missing, let me know. llvm-svn: 84218
* Dllexport stuff cleanup:Anton Korobeynikov2009-10-151-34/+40
| | | | | | | | 1. Emit external function type information for all COFF targets since it's a feature of object format 2. Emit linker directives only for cygming (since this is ld-specific stuff) llvm-svn: 84214
* Branches must be the last instruction in a Thumb2 IT block. Approved by Evan ↵Sandeep Patel2009-10-151-1/+5
| | | | | | Cheng. llvm-svn: 84212
* Fix encoding bits for N3VLInt3_QHS multiclass with 8-bit elements.Bob Wilson2009-10-151-1/+1
| | | | | | Patch by Johnny Chen. llvm-svn: 84206
* Fix ARM memory operand parsing of post indexing with just a base register, thatKevin Enderby2009-10-151-36/+41
| | | | | | is just "[Rn]" and no tailing comma with an offset, etc. llvm-svn: 84205
* Fix a potential performance problem in placing ARM constant pools.Bob Wilson2009-10-151-29/+67
| | | | | | | | | | | | In the case where there are no good places to put constants and we fall back upon inserting unconditional branches to make new blocks, allow all constant pool references in range of those blocks to put constants there, even if that means resetting the "high water marks" for those references. This will still terminate because you can't keep splitting blocks forever, and in the bad cases where we have to split blocks, it is important to avoid splitting more than necessary. llvm-svn: 84202
* More bits of the ARM target assembler for llvm-mc, code added to parse labelsKevin Enderby2009-10-151-16/+130
| | | | | | | | as expressions, code for parsing a few arm specific directives (still needs the MCStreamer calls for these). Some clean up of the operand parsing code and adding some comments. llvm-svn: 84201
* Remove X86Subtarget::IsLinux. It's no longer being used.Evan Cheng2009-10-152-10/+1
| | | | llvm-svn: 84200
* Fix bug where array malloc with unexpected computation of the size argument ↵Victor Hernandez2009-10-153-28/+64
| | | | | | | | | | | | | | | | | | | | resulted in MallocHelper identifying the malloc as a non-array malloc. This broke GlobalOpt's optimization of stores of mallocs to global variables. The fix is to classify malloc's into 3 categories: 1. non-array mallocs 2. array mallocs whose array size can be determined 3. mallocs that cannot be determined to be of type 1 or 2 and cannot be optimized getMallocArraySize() returns NULL for category 3, and all users of this function must avoid their malloc optimization if this function returns NULL. Eventually, currently unexpected codegen for computing the malloc's size argument will be supported in isArrayMalloc() and getMallocArraySize(), extending malloc optimizations to those examples. llvm-svn: 84199
* Add files Sanjiv forgot.Benjamin Kramer2009-10-153-0/+487
| | | | llvm-svn: 84196
* Re-apply 84180 with the fixed test case.Sanjiv Gupta2009-10-1510-689/+391
| | | | llvm-svn: 84195
* Move Blackfin intrinsics into the Target/Blackfin directory.Jakob Stoklund Olesen2009-10-157-1/+124
| | | | llvm-svn: 84194
* Report errors correctly for unselected target intrinsics.Jakob Stoklund Olesen2009-10-151-6/+9
| | | | llvm-svn: 84193
* Clean up TargetIntrinsicInfo API. Add pure virtual methods.Jakob Stoklund Olesen2009-10-151-2/+10
| | | | llvm-svn: 84192
* Add missing break statements! Thanks to Duncan Sands for pointing this out!Nick Lewycky2009-10-151-0/+2
| | | | llvm-svn: 84191
* Revert "Complete Rewrite of AsmPrinter, TargetObjectFile based on newDaniel Dunbar2009-10-1513-878/+689
| | | | | | PIC16Section class", it breaks globals.ll. llvm-svn: 84184
* Complete Rewrite of AsmPrinter, TargetObjectFile based on new PIC16Section classSanjiv Gupta2009-10-1513-689/+878
| | | | | | derived from MCSection. llvm-svn: 84180
* Few changes to comply with new DebugInfo Metadata representation.Sanjiv Gupta2009-10-151-4/+5
| | | | llvm-svn: 84179
* Teach basicaa about memcpy/memmove/memset. The length argument can be used toNick Lewycky2009-10-151-0/+22
| | | | | | improve alias results if constant, and the source pointer can't be modified. llvm-svn: 84175
* Teach BasicAA to use the size parameter of the memory use marker intrinsics.Nick Lewycky2009-10-151-18/+29
| | | | llvm-svn: 84174
* Be smarter about reusing constant pool entries.Bob Wilson2009-10-151-4/+17
| | | | llvm-svn: 84173
* Fix another problem with ARM constant pools. Radar 7303551.Bob Wilson2009-10-151-7/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | When ARMConstantIslandPass cannot find any good locations (i.e., "water") to place constants, it falls back to inserting unconditional branches to make a place to put them. My recent change exposed a problem in this area. We may sometimes append to the same block more than one unconditional branch. The symptoms of this are that the generated assembly has a branch to an undefined label and running llc with -debug will cause a seg fault. This happens more easily since my change to prevent CPEs from moving from lower to higher addresses as the algorithm iterates, but it could have happened before. The end of the block may be in range for various constant pool references, but the insertion point for new CPEs is not right at the end of the block -- it is at the end of the CPEs that have already been placed at the end of the block. The insertion point could be out of range. When that happens, the fallback code will always append another unconditional branch if the end of the block is in range. The fix is to only append an unconditional branch if the block does not already end with one. I also removed a check to see if the constant pool load instruction is at the end of the block, since that is redundant with checking if the end of the block is in-range. There is more to be done here, but I think this fixes the immediate problem. llvm-svn: 84172
* only try to fold constantexpr operands when the worklist is first populated, Chris Lattner2009-10-151-15/+30
| | | | | | | | don't bother every time going around the main worklist. This speeds up a release-asserts opt -std-compile-opts on 403.gcc by about 4% (1.5s). It seems to speed up the most expensive instances of instcombine by ~10%. llvm-svn: 84171
* don't bother calling ConstantFoldInstruction unless there is a use of theChris Lattner2009-10-151-22/+25
| | | | | | | | | instruction (which disqualifies stores, unreachable, etc) and at least the first operand is a constant. This filters out a lot of obvious cases that can't be folded. Also, switch the IRBuilder to a TargetFolder, which tries harder. llvm-svn: 84170
* Take advantage of TargetData when available; we know that the atomic intrinsicsNick Lewycky2009-10-151-18/+23
| | | | | | only dereference the element they point to directly with no pointer arithmetic. llvm-svn: 84159
* Make CodePlacementOpt align loops, rather than loop headers. TheDan Gohman2009-10-151-71/+30
| | | | | | | | | | header is just the entry block to the loop, and it needn't be at the top of the loop in the code layout. Remove the code that suppressed loop alignment for outer loops, so that outer loops are aligned. llvm-svn: 84158
* When LiveVariables is adding implicit-def to model "partial dead", add the ↵Evan Cheng2009-10-141-1/+12
| | | | | | earlyclobber marker if the superreg def has it. llvm-svn: 84153
* Print earlyclobber for implicit-defs as well.Evan Cheng2009-10-141-6/+6
| | | | llvm-svn: 84152
* Fix instruction encoding bits for NEON VPADAL.Bob Wilson2009-10-141-2/+2
| | | | | | Patch by Johnny Chen. llvm-svn: 84146
* Remove unused variables to fix build warning.Bob Wilson2009-10-141-3/+0
| | | | llvm-svn: 84144
* Make loop not recalc getNumOperands() each time aroundJim Grosbach2009-10-141-3/+2
| | | | llvm-svn: 84138
* Add support to record DbgScope as inlined scope.Devang Patel2009-10-142-25/+44
| | | | llvm-svn: 84134
* quiet compiler warningJim Grosbach2009-10-141-1/+1
| | | | llvm-svn: 84133
* Inst{11-8} for vshl should be 0b0101, not 0b1111.Jim Grosbach2009-10-141-1/+1
| | | | | | | | Refs: A7-17 & A8-750. Patch by Johnny Chen. llvm-svn: 84131
* Set instruction encoding bits 4 and 7 for ARM register-register andBob Wilson2009-10-141-7/+42
| | | | | | register-shifted-register instructions. Patch by Johnny Chen. llvm-svn: 84124
* Refactor code to select NEON VST intrinsics.Bob Wilson2009-10-141-168/+112
| | | | llvm-svn: 84122
* Use isVoidTy()Devang Patel2009-10-144-12/+12
| | | | llvm-svn: 84118
OpenPOWER on IntegriCloud