summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Fix a PPC rlwimi instruction-selection bugHal Finkel2013-06-281-2/+2
| | | | | | | | | Under certain (evidently rare) circumstances, this code used to convert OR(a, AND(x, y)) into OR(a, x). This was incorrect. While there, I've added a comment to the code immediately above. llvm-svn: 185201
* Remove needless include (unistd.h) in DebugIR passDaniel Malea2013-06-281-2/+0
| | | | | | - should unbreak Windows builds llvm-svn: 185198
* Add missing header for DebugIRDaniel Malea2013-06-281-0/+99
| | | | | | - missed svn add... llvm-svn: 185194
* Remove limitation on DebugIR that made it require existing debug metadata.Daniel Malea2013-06-281-153/+463
| | | | | | | | - Build debug metadata for 'bare' Modules using DIBuilder - DebugIR can be constructed to generate an IR file (to be seen by a debugger) or not in cases where the user already has an IR file on disk. llvm-svn: 185193
* Fix an off-by-one error. Also make the code a little more explicit in what itChad Rosier2013-06-281-3/+4
| | | | | | is trying to do. llvm-svn: 185191
* DebugInfo: Revise r185189 to avoid subtle 'unsigned += bool'David Blaikie2013-06-281-1/+2
| | | | llvm-svn: 185190
* DebugInfo: Simplify the AddressPool representationDavid Blaikie2013-06-282-18/+12
| | | | llvm-svn: 185189
* DebugInfo: constify the AddressPool MCSymbol pointersDavid Blaikie2013-06-282-12/+13
| | | | llvm-svn: 185188
* (no commit message)Preston Briggs2013-06-281-0/+5
| | | | llvm-svn: 185187
* Add missing case to switch statement - DAGTypeLegalizer::ExpandIntegerResultLang Hames2013-06-281-1/+2
| | | | | | | | | | | | should expand ATOMIC_CMP_SWAP nodes the same way that it does for ATOMIC_SWAP. Since ATOMIC_LOADs on some targets (e.g. older ARM variants) get legalized to ATOMIC_CMP_SWAPs, the missing case had been causing i64 atomic loads to crash during isel. <rdar://problem/14074644> llvm-svn: 185186
* Stylistic cleanups, no functional change.Jakob Stoklund Olesen2013-06-281-10/+7
| | | | | | | | - Use static functions instead of anonymous namespace. - Appease the Doxygen lobby. - Use 0-based induction variable. llvm-svn: 185185
* Add a division operator to BlockFrequency.Jakob Stoklund Olesen2013-06-281-23/+35
| | | | | | | | | | | Allow a BlockFrequency to be divided by a non-zero BranchProbability with saturating arithmetic. This will be used to compute the frequency of a loop header given the probability of leaving the loop. Our long division algorithm already saturates on overflow, so that was a freebie. llvm-svn: 185184
* Remove unused variables.Eric Christopher2013-06-281-4/+0
| | | | llvm-svn: 185180
* [NVPTX] Select -1 instead of 1 when anyextend'ing i1 typesJustin Holewinski2013-06-281-3/+3
| | | | | | This makes it more consistent with the ZeroOrNegativeOneBooleanContent flag llvm-svn: 185179
* [NVPTX] Add (1.0 / sqrt(x)) => rsqrt(x) generation when allowable by FP flagsJustin Holewinski2013-06-281-1/+12
| | | | llvm-svn: 185178
* [NVPTX] Calling conventions fixJustin Holewinski2013-06-281-24/+40
| | | | | | | | Fix ABI handling for function returning bool -- use st.param.b32 to return the value and use ld.param.b32 in caller to load the return value. llvm-svn: 185177
* [NVPTX] Add support for cttz/ctlz/ctpopJustin Holewinski2013-06-282-0/+74
| | | | llvm-svn: 185176
* [NVPTX] Clean up comparison/select/convert patterns and factor out PTX ↵Justin Holewinski2013-06-288-949/+1129
| | | | | | | | instructions from their patterns Test case is no breakage llvm-svn: 185175
* [NVPTX] Remove i8 register class. PTX support for i8 (.b8, .u8, .s8) is ↵Justin Holewinski2013-06-2810-859/+1243
| | | | | | rather poor and we're better off just ignoring it and letting LLVM expand all i8 ops out to i16. llvm-svn: 185174
* [NVPTX] Add support for vectorized function return valuesJustin Holewinski2013-06-281-27/+137
| | | | llvm-svn: 185173
* [NVPTX] Clean up handling of formal arguments and enable generation of ↵Justin Holewinski2013-06-281-114/+202
| | | | | | vector parameter loads llvm-svn: 185172
* [NVPTX] Add infrastructure for vector loads/stores of parametersJustin Holewinski2013-06-283-0/+155
| | | | llvm-svn: 185171
* Bug 13662: Enable GPRPair for all i64 operands of inline asm on ARMWeiming Zhao2013-06-282-12/+45
| | | | | | | | This patch assigns paired GPRs for inline asm with 64-bit data on ARM. It's enabled for both ARM and Thumb to support modifiers like %H, %Q, %R. llvm-svn: 185169
* LoopVectorize: Pull dyn_cast into setDebugLocFromInstArnold Schwaighofer2013-06-281-6/+5
| | | | llvm-svn: 185168
* LoopVectorize: Use static function instead of DebugLocSetter classArnold Schwaighofer2013-06-281-52/+30
| | | | | | | | | I used the class to safely reset the state of the builder's debug location. I think I have caught all places where we need to set the debug location to a new one. Therefore, we can replace the class by a function that just sets the debug location. llvm-svn: 185165
* R600: Add local memory support via LDSTom Stellard2013-06-2817-24/+254
| | | | | Reviewed-by: Vincent Lejeune<vljn at ovi.com> llvm-svn: 185162
* R600: Add support for GROUP_BARRIER instructionTom Stellard2013-06-287-3/+64
| | | | | Reviewed-by: Vincent Lejeune<vljn at ovi.com> llvm-svn: 185161
* R600: Add ALUInst bit to tablegen definitions v2Tom Stellard2013-06-284-4/+8
| | | | | | | | v2: - Remove functions left over from a previous rebase. Reviewed-by: Vincent Lejeune<vljn at ovi.com> llvm-svn: 185160
* ARM: ensure fixed-point conversions have sane typesTim Northover2013-06-281-5/+36
| | | | | | | | | | | We were generating intrinsics for NEON fixed-point conversions that didn't exist (e.g. float -> i16). There are two cases to consider: + iN is smaller than float. In this case we can do the conversion but need an extend or truncate as well. + iN is larger than float. In this case using the NEON conversion would be incorrect so we don't perform any combining. llvm-svn: 185158
* ARM: Fix pseudo-instructions for SRS (Store Return State).Tilmann Scheller2013-06-281-4/+4
| | | | | | | | | | | | | The mapping between SRS pseudo-instructions and SRS native instructions was incorrect, the correct mapping is: srsfa -> srsib srsea -> srsia srsfd -> srsdb srsed -> srsda This fixes <rdar://problem/14214734>. llvm-svn: 185155
* Improve comment.Rafael Espindola2013-06-281-4/+3
| | | | llvm-svn: 185141
* Make a switch in createBinary fully-covered. Add forgotten ↵Alexey Samsonov2013-06-281-2/+7
| | | | | | macho_dsym_companion case. llvm-svn: 185139
* Suppress GCC "control reaches end of non-void function" warning.Patrik Hagglund2013-06-281-0/+1
| | | | llvm-svn: 185136
* Debug Info: clean up usage of Verify.Manman Ren2013-06-2810-16/+54
| | | | | | | | | | | No functionality change. It should suffice to check the type of a debug info metadata, instead of calling Verify. For cases where we know the type of a DI metadata, use assert. Also update testing cases to make them conform to the format of DI classes. llvm-svn: 185135
* Integrate Assembler: Support X86_64_DTPOFF64 relocationsDavid Blaikie2013-06-281-1/+12
| | | | llvm-svn: 185131
* Improvements to unique_file and createUniqueDirectory.Rafael Espindola2013-06-283-241/+235
| | | | | | | | | | | | | | | | | | | * Don't try to create parent directories in unique_file. It had two problem: * It violates the contract that it is atomic. If the directory creation success and the file creation fails, we would return an error but the file system was modified. * When creating a temporary file clang would have to first check if the parent directory existed or not to avoid creating one when it was not supposed to. * More efficient implementations of createUniqueDirectory and the unique_file that produces only the file name. Now all 3 just call into a static function passing what they want (name, file or directory). Clang also has to be updated, so tests might fail if a bot picks up this commit and not the corresponding clang one. llvm-svn: 185126
* Don't ask for a mode when we are not keeping the file.Rafael Espindola2013-06-281-2/+2
| | | | llvm-svn: 185123
* LoopVectorize: Preserve debug location infoArnold Schwaighofer2013-06-281-1/+74
| | | | | | radar://14169017 llvm-svn: 185122
* Fix using arg_end() - arg_begin() instead of arg_size()Matt Arsenault2013-06-281-3/+3
| | | | llvm-svn: 185121
* Rename DIBuilder::createNullPtrType to createUnspecifiedType and introducePeter Collingbourne2013-06-271-4/+9
| | | | | | | | | a zero-argument createNullPtrType function for creating the canonical nullptr type. Differential Revision: http://llvm-reviews.chandlerc.com/D1050 llvm-svn: 185114
* Revert "Revert "[APFloat] Removed APFloat constructor which initialized to ↵Michael Gottesman2013-06-272-19/+9
| | | | | | | | | | | | | | | | | | | | either zero/NaN but allowed you to arbitrarily set the category of the float."" This reverts commit r185099. Looks like both the ppc-64 and mips bots are still failing after I reverted this change. Since: 1. The mips bot always performs a clean build, 2. The ppc64-bot failed again after a clean build (I asked the ppc-64 maintainers to clean the bot which they did... Thanks Will!), I think it is safe to assume that this change was not the cause of the failures that said builders were seeing. Thus I am recomitting. llvm-svn: 185111
* Revert "[APFloat] Removed APFloat constructor which initialized to either ↵Michael Gottesman2013-06-272-9/+19
| | | | | | | | | | | | zero/NaN but allowed you to arbitrarily set the category of the float." This reverts commit r185095. This is causing a FileCheck failure on the 3dnow intrinsics on at least the mips/ppc bots but not on the x86 bots. Reverting while I figure out what is going on. llvm-svn: 185099
* LoopVectorize: Cache edge masks created during if-conversionArnold Schwaighofer2013-06-271-0/+15
| | | | | | | Otherwise, we end up with an exponential IR blowup. Fixes PR16472. llvm-svn: 185097
* [APFloat] Removed APFloat constructor which initialized to either zero/NaN ↵Michael Gottesman2013-06-272-19/+9
| | | | | | | | | | | | | | but allowed you to arbitrarily set the category of the float. The category which an APFloat belongs to should be dependent on the actual value that the APFloat has, not be arbitrarily passed in by the user. This will prevent inconsistency bugs where the category and the actual value in APFloat differ. I also fixed up all of the references to this constructor (which were only in LLVM). llvm-svn: 185095
* Get rid of the unused class member.Nadav Rotem2013-06-271-3/+2
| | | | llvm-svn: 185086
* CostModel: improve the cost model for load/store of non power-of-two types ↵Nadav Rotem2013-06-271-0/+43
| | | | | | such as <3 x float>, which are popular in graphics. llvm-svn: 185085
* LoopVectorize: Use vectorized loop invariant gep index anchored in loopArnold Schwaighofer2013-06-271-8/+20
| | | | | | | | | Use vectorized instruction instead of original instruction anchored in the original loop. Fixes PR16452 and t2075.c of PR16455. llvm-svn: 185081
* Use MCFillFragment for zero-initialized data.Serge Pavlov2013-06-273-3/+17
| | | | | | | | It fixes PR16338 (ICE when compiling very large two-dimensional array). Differential Revision: http://llvm-reviews.chandlerc.com/D1043 llvm-svn: 185080
* Add a Subtarget feature 'v8fp' to the ARM backend.Joey Gouly2013-06-275-5/+24
| | | | llvm-svn: 185073
* Remove unused variable.Benjamin Kramer2013-06-271-2/+0
| | | | llvm-svn: 185072
OpenPOWER on IntegriCloud