summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* Suppress OS crash dialog in llvm-rtdyldAlp Toker2013-11-051-0/+5
| | | | | | | All other tools have this -- it's needed to avoid hanging lit on Windows in case of a crash. llvm-svn: 194060
* [OCaml] Properly tag the custom operations of Llvm.llbuilderPeter Zotov2013-11-051-1/+1
| | | | | | All other custom operations tags have LLVM prefix. llvm-svn: 194058
* [OCaml] Llvm_linker: do not use external in module interfacePeter Zotov2013-11-051-2/+1
| | | | | | | Workaround for an OCaml bug: http://caml.inria.fr/mantis/view.php?id=4166 llvm-svn: 194057
* Fix r194019 as requested by Eric Christopher.Reed Kotler2013-11-053-13/+1444
| | | | | | | | | | | | | | | | | | | | | Submit the basic port of the rest of ARM constant islands code to Mips. Two test cases are added which reflect the next level of functionality: constants getting moved to water areas that are out of range from the initial placement at the end of the function and basic blocks being split to create water when none exists that can be used. There is a bunch of this code that is not complete and has been marked with IN_PROGRESS. I will finish cleaning this all up during the next week or two and submit the rest of the test cases. I have elminated some code for dealing with inline assembly because to me it unecessarily complicates things and some of the newer features of llvm like function attributies and builtin assembler give me better tools to solve the alignment issues created there. Also, for Mips16 I even have the option of not doing constant islands in the present of inline assembler if I chose. When everything has been completed I will summarize the port and notify people that are knowledgable regarding the ARM Constant Islands code so they can review it in it's entirety if they wish. llvm-svn: 194053
* Fix symbol defines in config.h.cmakeAlp Toker2013-11-051-3/+3
| | | | | | | | | These were incorrectly pointing to HAVE_LOG despite being checked for correctly in config-ix.cmake. Patch by James Lyon! llvm-svn: 194051
* Lift alignment restrictions on load folding for a significant portion of AVX ↵Craig Topper2013-11-051-166/+166
| | | | | | instructions. llvm-svn: 194048
* Implement AArch64 post-index vector load/store multiple N-element structure ↵Hao Liu2013-11-0511-15/+1425
| | | | | | | | | | | | class SIMD(lselem-post). Including following 14 instructions: 4 ld1 insts: post-index load multiple 1-element structure to sequential 1/2/3/4 registers. ld2/ld3/ld4: post-index load multiple N-element structure to sequential N registers (N=2,3,4). 4 st1 insts: post-index store multiple 1-element structure from sequential 1/2/3/4 registers. st2/st3/st4: post-index store multiple N-element structure from sequential N registers (N = 2,3,4). llvm-svn: 194043
* Implemented aarch64 neon intrinsic vcopy_lane with float type.Kevin Qin2013-11-053-88/+194
| | | | llvm-svn: 194041
* Revert "llvm-cov: Added command-line option to change dir."Yuchen Wu2013-11-052-19/+7
| | | | | | This reverts commit d8acf0078cf363252727acff00f85ae8074f95b3. llvm-svn: 194040
* Revert "Added basic unit test for llvm-cov."Yuchen Wu2013-11-057-169/+0
| | | | | | This reverts commit 9cacd131c22b888303cb88e9a3235b2d7b2f19a1. llvm-svn: 194039
* Added basic unit test for llvm-cov.Yuchen Wu2013-11-057-0/+169
| | | | | | | This test compares the output of llvm-cov against a coverage file generated by gcov. llvm-svn: 194038
* llvm-cov: Added command-line option to change dir.Yuchen Wu2013-11-052-7/+19
| | | | | | | This will allow for much easier testing when the input files are in a different folder from the test script. llvm-svn: 194034
* Support for reading run counts in llvm-cov.Yuchen Wu2013-11-052-3/+32
| | | | | | | | | | | | This patch enables llvm-cov to correctly output the run count stored in the GCDA file. GCOVProfiling currently does not generate this information, so the GCDA run data had to be hacked on from a GCDA file generated by gcc. This is corrected by a subsequent patch. With the run and program data included, both llvm-cov and gcov produced the same output. llvm-svn: 194033
* Fix MSVC build by not putting an error_code directly in a union.Rafael Espindola2013-11-051-6/+17
| | | | llvm-svn: 194032
* Simplify ErrorOr.Rafael Espindola2013-11-052-252/+5
| | | | | | | | | | | | | | | | ErrorOr had quiet a bit of complexity and indirection to be able to hold a user type with the error. That feature is not used anymore. This patch removes it, it will live in svn history if we ever need it again. If we do need it again, IMHO there is one thing that should be done differently: Holding extra info in the error is not a property a function also returning a value or not. The ability to hold extra info should be in the error type and ErrorOr templated over it so that we don't need the funny looking ErrorOr<void>. llvm-svn: 194030
* Add a runtime unrolling parameter to the LoopUnroll pass constructorHal Finkel2013-11-052-7/+12
| | | | | | | | | | | As with the other loop unrolling parameters (the unrolling threshold, partial unrolling, etc.) runtime unrolling can now also be controlled via the constructor. This will be necessary for moving non-trivial unrolling late in the pass manager (after loop vectorization). No functionality change intended. llvm-svn: 194027
* Revert r194019 to r194021, "Submit the basic port of the rest of ARM ↵NAKAMURA Takumi2013-11-043-1563/+12
| | | | | | | | constant islands code to Mips." It broke -Asserts build. llvm-svn: 194026
* ARM: remove unnecessary state-tracking during frame lowering.Tim Northover2013-11-046-115/+58
| | | | | | | | | | | | | | | | | | | | | ResolveFrameIndex had what appeared to be a very nasty hack for when the frame-index referred to a callee-saved register. In this case it "adjusted" the offset so that the address was correct if (and only if) the MachineInstr immediately followed the respective push. This "worked" for all forms of GPR & DPR but was only ever used to set the frame pointer itself, and once this was put in a more sensible location the entire state-tracking machinery it relied on became redundant. So I stripped it. The only wrinkle is that "add r7, sp, #0" might theoretically be slower (need an actual ALU slot) compared to "mov r7, sp" so I added a micro-optimisation that also makes emitARMRegUpdate and emitT2RegUpdate also work when NumBytes == 0. No test changes since there shouldn't be any functionality change. llvm-svn: 194025
* AArch64: use default asm operand printing when modifier inapplicableTim Northover2013-11-042-47/+88
| | | | | | | | | | | | If an inline assembly operand has multiple constraints (e.g. "Ir" for immediate or register) and an operand modifier (E.g. "w" for "print register as wN") then we need to decide behaviour when the modifier doesn't apply to the constraint. Previousely produced some combination of an assertion failure and a fatal error. GCC's behaviour appears to be to ignore the modifier and print the operand in the default way. This patch should implement that. llvm-svn: 194024
* Make sure we don't get a warning from this variable that is only usedReed Kotler2013-11-041-0/+1
| | | | | | when compiling with DEBUG. llvm-svn: 194021
* Add the test case that goes with the previous submission for constant Reed Kotler2013-11-041-0/+64
| | | | | | islands. I forgot to add it to svn on that patch. Ooops. llvm-svn: 194020
* Submit the basic port of the rest of ARM constant islands code to Mips. Reed Kotler2013-11-042-12/+1498
| | | | | | | | | | | | | | | | | Two test cases are added which reflect the next level of functionality: constants getting moved to water areas that are out of range from the initial placement at the end of the function and basic blocks being split to create water when none exists that can be used. There is a bunch of this code that is not complete and has been marked with IN_PROGRESS. I will finish cleaning this all up during the next week or two and submit the rest of the test cases. I have elminated some code for dealing with inline assembly because to me it unecessarily complicates things and some of the newer features of llvm like function attributies and builtin assembler give me better tools to solve the alignment issues created there. Also, for Mips16 I even have the option of not doing constant islands in the present of inline assembler if I chose. llvm-svn: 194019
* Remove dead codeShuxin Yang2013-11-041-6/+0
| | | | llvm-svn: 194017
* Check for both styles of clobbers, those produced by dragonegg andEric Christopher2013-11-042-20/+41
| | | | | | | | those produced by clang for the inline asm bswap conversion. Modified from a patch by Chris Smowton. llvm-svn: 194016
* SLPVectorizer: Use properlyDominates to satisfy the irreflexivity of a ↵Benjamin Kramer2013-11-041-1/+1
| | | | | | | | strict weak ordering. STL debug mode checks this. llvm-svn: 194015
* Fix another constant folding address space place I missed.Matt Arsenault2013-11-042-13/+38
| | | | | | This fixes an assertion failure with a different sized address space. llvm-svn: 194014
* Scalarize select vector arguments when extracted.Matt Arsenault2013-11-043-29/+163
| | | | | | | | When the elements are extracted from a select on vectors or a vector select, do the select on the extracted scalars from the input if there is only one use. llvm-svn: 194013
* [docs] Add link to 32-bit ARM ELF supplement.Sean Silva2013-11-041-0/+1
| | | | llvm-svn: 194011
* Use startswith_lower() where possible.Jakub Staszak2013-11-042-9/+2
| | | | llvm-svn: 194007
* Add support for AVX512 masked vector blend intrinsics.Cameron McInally2013-11-043-18/+92
| | | | llvm-svn: 194006
* Rename testing case to use - instead of _.Manman Ren2013-11-041-0/+0
| | | | llvm-svn: 194001
* Change BitcodeReader to use error_code instead of bool + string.Rafael Espindola2013-11-044-381/+495
| | | | | | | | In order to create an ObjectFile implementation that uses bitcode files, we need to propagate the bitcode errors to the ObjectFile interface, so we need to convert it to use the same error handling as ObjectFile: error_code. llvm-svn: 193996
* Support for microMIPS branch instructions.Zoran Jovanovic2013-11-0417-26/+342
| | | | llvm-svn: 193992
* AVX-512: fixed a typo in builtin nameElena Demikhovsky2013-11-041-6/+6
| | | | llvm-svn: 193988
* X86: Add a description for AMD bdver3 aka Steamroller.Benjamin Kramer2013-11-042-3/+13
| | | | | | This is just bdver2 + FSGSBase. llvm-svn: 193984
* Make the pretty stack trace be an opt-in, rather than opt-out, facility. ↵Filip Pizlo2013-11-043-28/+21
| | | | | | | | | Enable pretty stack traces by default if you use PrettyStackTraceProgram, so that existing LLVM-based tools will continue to get it without any changes. llvm-svn: 193971
* [OCaml] implement Llvm_passmgr_builder, bindings for PassManagerBuilderPeter Zotov2013-11-047-1/+291
| | | | llvm-svn: 193968
* [OCaml] DocumentationPeter Zotov2013-11-042-7/+19
| | | | llvm-svn: 193967
* [OCaml] Implement missing LLVMCore APIsPeter Zotov2013-11-044-68/+396
| | | | llvm-svn: 193966
* [OCaml] FormattingPeter Zotov2013-11-043-172/+48
| | | | llvm-svn: 193965
* AVX-512: added VPCONFLICT instruction and intrinsics,Elena Demikhovsky2013-11-037-6/+209
| | | | | | added EVEX_KZ to tablegen llvm-svn: 193959
* SLPVectorizer: Add a missing pair of parens. No functionality change.Benjamin Kramer2013-11-031-1/+1
| | | | llvm-svn: 193958
* [SparcV9] Handle i64 <-> float conversions in sparcv9 mode.Venkatraman Govindaraju2013-11-036-29/+416
| | | | llvm-svn: 193957
* SLPVectorizer: When CSEing generated gathers only scan blocks containing them.Benjamin Kramer2013-11-031-20/+37
| | | | | | | | | | | Instead of doing a RPO traversal of the whole function remember the blocks containing gathers (typically <= 2) and scan them in dominator-first order. The actual CSE is still quadratic, but I'm not confident that adding a scoped hash table here is worth it as we're only looking at the generated instructions and not arbitrary code. llvm-svn: 193956
* Revert "Inliner: Handle readonly attribute per argument when adding memcpy"David Majnemer2013-11-032-36/+31
| | | | | | | | This reverts commit r193356, it caused PR17781. A reduced test case covering this regression has been added to the test suite. llvm-svn: 193955
* Spell "Actual" correctlyDavid Majnemer2013-11-031-1/+1
| | | | llvm-svn: 193954
* [OCaml] Implement Llvm.MemoryBuffer.{of_string,as_string}Peter Zotov2013-11-034-0/+42
| | | | llvm-svn: 193953
* [OCaml] Fix ABI incompatibilityPeter Zotov2013-11-032-1/+8
| | | | | | OCaml's type unit is not compatible with C's type void. llvm-svn: 193952
* [OCaml] Implement Llvm_linker, bindings for the IR linkerPeter Zotov2013-11-037-1/+194
| | | | llvm-svn: 193951
* [OCaml] Implement Llvm_vectorize bindingsPeter Zotov2013-11-037-1/+167
| | | | llvm-svn: 193950
OpenPOWER on IntegriCloud