summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* If we're only emitting line tables for a particular CU then don't addEric Christopher2014-02-275-6/+11
| | | | | | | | | | | any ranges to the list of ranges for the CU as we don't want to emit them anyway. This ensures that we will still emit ranges if we have a compile unit compiled with only line tables and one compiled with full debug info requested (we'll emit for the one with full debug info). Update testcase metadata accordingly to continue emitting ranges. llvm-svn: 202333
* Add a debug info code generation level to the compile unit metadataEric Christopher2014-02-277-7/+13
| | | | | | | | | | and update everything accordingly. This can be used to conditionalize the amount of output in the backend based on the amount of debug requested/metadata emission scheme by a front end (e.g. clang). Paired with a commit to clang. llvm-svn: 202332
* Formatting.Eric Christopher2014-02-271-1/+1
| | | | llvm-svn: 202323
* Add an explanatory comment.Eric Christopher2014-02-271-0/+1
| | | | llvm-svn: 202321
* Grammar and spelling.Eric Christopher2014-02-261-2/+2
| | | | llvm-svn: 202318
* Fix a type error that crept into r202313.Adrian Prantl2014-02-261-1/+1
| | | | llvm-svn: 202317
* Remove unnecessary llvm:: qualification.Eric Christopher2014-02-265-16/+16
| | | | llvm-svn: 202316
* Use regnum regex in an XCore test case.Andrew Trick2014-02-261-20/+18
| | | | llvm-svn: 202315
* Debug info: Refactor AsmPrinter::EmitDwarfRegOp to make the control flowAdrian Prantl2014-02-261-60/+90
| | | | | | more obvious. llvm-svn: 202313
* R600: Remove unnecessary build_vector pattern.Matt Arsenault2014-02-262-10/+1
| | | | | | It is already fully handled in AMDGPUISelDAGToDAG. llvm-svn: 202312
* Very temporarily XFAILing a test. Will be fixed shortly.Andrew Trick2014-02-261-0/+2
| | | | llvm-svn: 202310
* Fix broken FileCheck prefixesNico Rieck2014-02-262-8/+8
| | | | llvm-svn: 202308
* Add a limit to the heuristic that register allocates instructions in local ↵Andrew Trick2014-02-262-3/+9
| | | | | | | | | | | | order. This handles pathological cases in which we see 2x increase in spill code for large blocks (~50k instructions). I don't have a unit test for this behavior. Fixes rdar://16072279. llvm-svn: 202304
* Use an install name dir of @executable_path/../lib instead of @rpath.Rafael Espindola2014-02-261-1/+1
| | | | | | | Using @executable_path/../lib matches what we have on Makefiles and works with older versions of OS X too. llvm-svn: 202302
* Lower unsigned vsetcc to psubus in certain casesQuentin Colombet2014-02-263-12/+171
| | | | | | | | | | | | | | | | | | | | | The current approach to lower a vsetult is to flip the sign bit of the operands, swap the operands and then use a (signed) pcmpgt. psubus (unsigned saturating subtract) can be used to emulate a vsetult more efficiently: + case ISD::SETULT: { + // If the comparison is against a constant we can turn this into a + // setule. With psubus, setule does not require a swap. This is + // beneficial because the constant in the register is no longer + // destructed as the destination so it can be hoisted out of a loop. I also enable lowering via psubus in a few other cases where it's clearly beneficial: setule and setuge if minu/maxu cannot be used. rdar://problem/14338765 Patch by Adam Nemet <anemet@apple.com>. llvm-svn: 202301
* Don't mix the plain and keyword signatures of target_link_libraries.Rafael Espindola2014-02-261-1/+1
| | | | llvm-svn: 202299
* Silencing an MSVC signed comparison warning.Aaron Ballman2014-02-261-1/+1
| | | | llvm-svn: 202295
* Fix the aggressive anti-dep breaker's subregister definition handlingHal Finkel2014-02-261-1/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The aggressive anti-dependency breaker scans instructions, bottom-up, within the scheduling region in order to find opportunities where register renaming can be used to break anti-dependencies. Unfortunately, the aggressive anti-dep breaker was treating a register definition as defining all of that register's aliases (including super registers). This behavior is incorrect when the super register is live and there are other definitions of subregisters of the super register. For example, given the following sequence: %CR2EQ<def> = CROR %CR3UN, %CR3UN<kill> %CR2GT<def> = IMPLICIT_DEF %X4<def> = MFOCRF8 %CR2 the analysis of the first subregister definition would work as expected: Anti: %CR2GT<def> = IMPLICIT_DEF Def Groups: CR2GT=g194->g0(via CR2) Antidep reg: CR2GT (zero group) Use Groups: but the analysis of the second one would not: Anti: %CR2EQ<def> = CROR %CR3UN, %CR3UN<kill> Def Groups: CR2EQ=g195 Antidep reg: CR2EQ Rename Candidates for Group g195: ... because, when processing the %CR2GT<def>, we'd mark all super registers of %CR2GT (%CR2 in this case) as defined. As a result, when processing %CR2EQ<def>, %CR2 no longer appears to be live, and %CR2EQ<def>'s group is not %unioned with the %CR2 group. I don't have an in-tree test case for this yet (and even if I did, I don't have a small one). llvm-svn: 202294
* GlobalOpt: Apply fastcc to internal x86_thiscallcc functionsReid Kleckner2014-02-262-5/+60
| | | | | | | | | | We should apply fastcc whenever profitable. We can expand this list, but there are lots of conventions with performance implications that we don't want to change. Differential Revision: http://llvm-reviews.chandlerc.com/D2705 llvm-svn: 202293
* Relax COFF string table checkNico Rieck2014-02-263-2/+14
| | | | | | | | | COFF object files with 0 as string table size are currently rejected. This prevents us from reading object files written by tools like cvtres that violate the PECOFF spec and write 0 instead of 4 for the size of an empty string table. llvm-svn: 202292
* Fix broken FileCheck prefixNico Rieck2014-02-261-4/+4
| | | | llvm-svn: 202291
* Use the overloaded std::abs rather than C's abs(int) to address Clang's ↵David Blaikie2014-02-261-1/+1
| | | | | | -Wabsolute-value llvm-svn: 202286
* Use count 0.Rafael Espindola2014-02-261-4/+1
| | | | | | Thanks to Roman Divacky for the suggestion. llvm-svn: 202283
* Fix typo. Thanks to Roman Divacky for noticing it.Rafael Espindola2014-02-262-11/+12
| | | | llvm-svn: 202277
* Compare DataLayout by Value, not by pointer.Rafael Espindola2014-02-266-1/+30
| | | | | | | | This fixes spurious warnings in llvm-link about the datalayout not matching. Thanks to Zalman Stern for reporting the bug! llvm-svn: 202276
* Use a sorted array to store the information about a few address spaces.Rafael Espindola2014-02-262-33/+44
| | | | | | | | | We don't have any test with more than 6 address spaces, so a DenseMap is probably not the correct answer. An unsorted array would also be OK, but we have to sort it for printing anyway. llvm-svn: 202275
* Move these functions out of line. A DenseMap lookup is not a simple operation.Rafael Espindola2014-02-262-21/+29
| | | | llvm-svn: 202274
* Fix PR18165: LSR must avoid scaling factors that exceed the limit on ↵Andrew Trick2014-02-262-0/+100
| | | | | | | | truncated use. Patch by Michael Zolotukhin! llvm-svn: 202273
* llvm-symbolizer: use dynamic symbol table if the regular one is stripped.Alexey Samsonov2014-02-264-29/+50
| | | | llvm-svn: 202265
* Move getELFDynamicSymbolIterators to a public header.Alexey Samsonov2014-02-262-25/+23
| | | | llvm-svn: 202264
* [CMake] BUILD_SHARED_LIBS: Fixup for r202261: Give PULIC to system_libs in ↵NAKAMURA Takumi2014-02-261-1/+9
| | | | | | LLVMSupport. llvm-svn: 202263
* Ensure bitcode encoding of instructions and their operands stays stable.Michael Kuperstein2014-02-2614-0/+583
| | | | | | | | This includes instructions with aggregate operands (insert/extract), instructions with vector operands (insert/extract/shuffle), binary arithmetic and bitwise instructions, conversion instructions and terminators. Work was done by lama.saba@intel.com. llvm-svn: 202262
* [CMake] Work around to use target_link_libraries(PUBLIC) in ↵NAKAMURA Takumi2014-02-261-0/+7
| | | | | | | BUILD_SHARED_LIBS mode. FIXME: It may be PRIVATE since SO knows its dependent libs. llvm-svn: 202261
* [CMake] Move LLVMBUILD_LIB_DEPS stuff from add_llvm_library (and ↵NAKAMURA Takumi2014-02-261-13/+30
| | | | | | LLVm-Config) to llvm_add_library to centralize target_link_libraries. llvm-svn: 202260
* AArch64: simplify tbl/tbx polymorphismTim Northover2014-02-262-100/+100
| | | | | | | | | The table argument is always 128-bit (and interpreted as <16 x i8>) so the extra specifier for it is just clutter. No user-visible behaviour change, so no tests. llvm-svn: 202258
* ARMv8 IfConversion must skip narrow instructions that a) define CPSR and b) ↵Artyom Skrobov2014-02-264-16/+139
| | | | | | wouldn't affect CPSR in an IT block llvm-svn: 202257
* Stop test/CodeGen/ARM/a15.ll targetting non-ARM targets.Daniel Sanders2014-02-261-1/+1
| | | | | | | | | | | | | | | | | Summary: Fixes an issue where a test attempts to use -mcpu=cortex-a15 on non-ARM targets. This triggers an assertion on MIPS since it doesn't know what ABI to use by default for unrecognized processors. Reviewers: rengolin Reviewed By: rengolin CC: llvm-commits, aemerson, rengolin Differential Revision: http://llvm-reviews.chandlerc.com/D2876 llvm-svn: 202256
* [mips] Treat -mcpu=generic the same way as an empty CPU string.Daniel Sanders2014-02-262-2/+2
| | | | | | | | | | | | | | | | | Summary: This should fix the MCJIT unit tests that were broken by r201792 on the MIPS buildbot. MIPS currently uses the default implementation of sys::getHostCPUName() which always returns "generic". For now, we will accept "generic" and coerce it to "mips32" or "mips64" depending on the target architecture like we do for empty CPU names. Reviewers: jacksprat, matheusalmeida Reviewed By: jacksprat Differential Revision: http://llvm-reviews.chandlerc.com/D2878 llvm-svn: 202253
* [SROA] Use the correct index integer size in GEPs through non-defaultChandler Carruth2014-02-262-6/+11
| | | | | | | | | | | address spaces. This isn't really a correctness issue (the values are truncated) but its much cleaner. Patch by Matt Arsenault! llvm-svn: 202252
* Add two helpers to IRBuilder to flesh the interface out to N-widthChandler Carruth2014-02-261-0/+11
| | | | | | integers. Complements the interfaces it is wrapping. llvm-svn: 202251
* [SROA] Teach SROA how to handle pointers from address spaces other thanChandler Carruth2014-02-264-10/+149
| | | | | | | | | | | | | | | the default. Based on the patch by Matt Arsenault, D1764! I switched one place to use the more direct pointer type to compute the desired address space, and I reworked the memcpy rewriting section to reflect significant refactorings that this patch helped inspire. Thanks to several of the folks who helped review and improve the patch as well. llvm-svn: 202247
* [SROA] Split the alignment computation complete for the memcpy rewritingChandler Carruth2014-02-262-16/+32
| | | | | | | | | | | | | to work independently for the slice side and the other side. This allows us to only compute the minimum of the two when we actually rewrite to a memcpy that needs to take the minimum, and preserve higher alignment for one side or the other when rewriting to loads and stores. This fix was inspired by seeing the result of some refactoring that makes addrspace handling better. llvm-svn: 202242
* [CMake] Use target_link_libraries(INTERFACE|PRIVATE) on CMake-2.8.12 to ↵NAKAMURA Takumi2014-02-263-4/+17
| | | | | | | | | | | | | | | | | | increase opportunity for parallel build. target_link_libraries(INTERFACE) doesn't bring inter-target dependencies in add_library, although final targets have dependencies to whole dependent libraries. It makes most libraries can be built in parallel. target_link_libraries(PRIVATE) is used to shaared library. Each dependent library is linked to the target.so, and its user will not see its grandchildren. For example, - libclang.so has sufficient libclang*.a(s). - c-index-test requires just only libclang.so. FIXME: lld is tweaked minimally. Adding INTERFACE in each library would be better thing. llvm-svn: 202241
* [x86] Add same itinerary to SYSEXIT64 as SYSEXIT for consistency.Craig Topper2014-02-261-2/+2
| | | | llvm-svn: 202240
* [CMake] Introduce cmake_policy(CMP0022) for ↵NAKAMURA Takumi2014-02-261-0/+15
| | | | | | | | | | | | target_link_libraries(INTERFACE|PRIVATE). For now, use both keywords, INTERFACE and PRIVATE via the variable, - ${cmake_2_8_12_INTERFACE} - ${cmake_2_8_12_PRIVATE} They could be cleaned up when we introduce 2.8.12. llvm-svn: 202239
* [CMake] Use LINK_LIBS instead of target_link_libraries().NAKAMURA Takumi2014-02-263-12/+12
| | | | llvm-svn: 202238
* [x86] Remove some unused instruction format classes.Craig Topper2014-02-261-12/+0
| | | | llvm-svn: 202234
* [x86] Simplify disassembler code slightly.Craig Topper2014-02-262-8/+12
| | | | llvm-svn: 202233
* [SROA] The original refactoring inspired by the addrspace patch inChandler Carruth2014-02-261-21/+21
| | | | | | | | | | | | | | | | | | | | | | D1764, which in turn set off the other refactorings to make 'getSliceAlign()' a sensible thing. There are two possible inputs to the required alignment of a memory transfer intrinsic: the alignment constraints of the source and the destination. If we are *only* introducing a (potentially new) offset onto one side of the transfer, we don't need to consider the alignment constraints of the other side. Use this to simplify the logic feeding into alignment computation for unsplit transfers. Also, hoist the clamp of the magical zero alignment for these intrinsics to the more customary one alignment early. This lets several other conditions melt away. No functionality changed. There is a further improvement this exposes which *will* change functionality, but that's arriving in a separate patch. llvm-svn: 202232
* [SROA] Yet another slight refactoring that simplifies an API in theChandler Carruth2014-02-261-20/+19
| | | | | | | | | | | | | | | | rewriting logic: don't pass custom offsets for the adjusted pointer to the new alloca. We always passed NewBeginOffset here. Sometimes we spelled it BeginOffset, but only when they were in fact equal. Whats worse, the API is set up so that you can't reasonably call it with anything else -- it assumes that you're passing it an offset relative to the *original* alloca that happens to fall within the new one. That's the whole point of NewBeginOffset, it's the clamped beginning offset. No functionality changed. llvm-svn: 202231
OpenPOWER on IntegriCloud