summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* Fix -Wmicrosoft-enum-value warningReid Kleckner2016-05-191-2/+2
| | | | llvm-svn: 270110
* X86: Don't reset the stack after calls that don't return (PR27117)Hans Wennborg2016-05-193-1/+58
| | | | | | | | | Since the calls don't return, the instruction afterwards will never run, and is just taking up unnecessary space in the binary. Differential Revision: http://reviews.llvm.org/D20406 llvm-svn: 270109
* Modify emitTypeInformation to use MemoryTypeTableBuilderAdrian McCarthy2016-05-192-42/+19
| | | | | | | | A baby step toward translating DIType records to CodeView. This does not (yet) combine the record length with the record data. I'm going back and forth trying to determine if that's a good idea. llvm-svn: 270106
* [ARM, AArch64] Properly initialize InterleavedAccessPassMatthew Simpson2016-05-194-4/+3
| | | | | | | InterleavedAccessPass is an IR-level pass, so this change will enable testing it with opt. This is part of D20250. llvm-svn: 270101
* [Target] Don't return a std::string in getRegAsmNameDavid Majnemer2016-05-191-2/+2
| | | | | | | | | | | | | | | | | | getRegAsmName ends up making a copy of the register's name in order to make a lower-case version of it. This is bad because getRegForInlineAsmConstraint, it's sole caller, does a lowercase comparison anyway. This resulted in a significant regression in compile time for the Linux kernel because getRegAsmName is called in a loop by getRegForInlineAsmConstraint. Instead, forgo the call to lower in getRegAsmName and have it return a StringRef. No functionality change is intended. llvm-svn: 270099
* [x86] add tests for urem loweringSanjay Patel2016-05-191-0/+80
| | | | llvm-svn: 270096
* Remember the relocation model. NFC.Rafael Espindola2016-05-195-18/+16
| | | | | | This avoids passing a TargetMachine in a few places. llvm-svn: 270095
* Style fixes. NFC.Rafael Espindola2016-05-195-18/+16
| | | | llvm-svn: 270093
* [SystemZ] Test commit - remove idea from READMEZhan Jun Liau2016-05-191-5/+0
| | | | | | | Remove a comment about not supporting LRVH/STRVH from the README LRVH/STRVH are being generated as of r269688 llvm-svn: 270092
* AMDGPU: Also look for s_cbranch_vcczMatt Arsenault2016-05-191-1/+2
| | | | llvm-svn: 270091
* pdbdump: Rename NumberOfSymbols -> SymbolRecordStreamIndex.Rui Ueyama2016-05-194-8/+10
| | | | | | Differential Revision: http://reviews.llvm.org/D20441 llvm-svn: 270088
* Fix a covnersion from string to bool issue used in an assertRon Lieberman2016-05-191-1/+1
| | | | | | | Problem Was exposed by -Wstring-conversion llvm-svn: 270087
* [X86][SSE] Added fast-isel tests to sync with clang/test/CodeGen/sse-builtins.cSimon Pilgrim2016-05-192-0/+2315
| | | | llvm-svn: 270081
* [X86][SSE2] Fixed shuffle of results in _mm_cmpnge_sd/_mm_cmpngt_sd testsSimon Pilgrim2016-05-191-8/+16
| | | | llvm-svn: 270080
* CodeGen: Move check of EnablePostRAScheduler to avoid disabling ↵Mitch Bodart2016-05-191-11/+12
| | | | | | | | | | | | antidependency breaker Previously, specifying -post-RA-scheduler=true had the side effect of disabling the antidependency breaker, yielding different behavior than if the post-RA-scheduler was enabled via the scheduling model. Differential Revision: http://reviews.llvm.org/D20186 llvm-svn: 270077
* Temporarily revert r270070George Rimar2016-05-195-33/+48
| | | | | | | | | | | | | | | | | | | | | | It broke buildbot: http://lab.llvm.org:8011/builders/clang-s390x-linux/builds/4817/steps/ninja%20check%201/logs/stdio Actually it is just because D20273 not yet commited, but these 2 were crossing with each other, and I`ll better find the way to land them separatelly soon. Initial commit message: [llvm-mc] - Teach llvm-mc to generate compressed debug sections in zlib style. Before this patch llvm-mc generated zlib-gnu styled sections. That means no SHF_COMPRESSED flag was set, magic 'zlib' signature was used in combination with full size field. Sections were renamed to "*.z*". This patch reimplements the compression style to zlib one as zlib-gnu looks to be depricated everywhere. Differential revision: http://reviews.llvm.org/D20331 llvm-svn: 270075
* [SCCP] Prefer class to struct.Davide Italiano2016-05-192-3/+6
| | | | llvm-svn: 270074
* [SelectionDAG] rename/move isKnownToBeAPowerOfTwo() from TargetLowering (NFC)Sanjay Patel2016-05-193-32/+35
| | | | | | | | | There are at least 2 places (DAGCombiner, X86ISelLowering) where this could be used instead of ad-hoc and watered down code that is trying to match a power-of-2 pattern. Differential Revision: http://reviews.llvm.org/D20439 llvm-svn: 270073
* [LAA] Check independence of strided accesses before forward caseMatthew Simpson2016-05-192-10/+56
| | | | | | | | | | | | This patch changes the order in which we attempt to prove the independence of strided accesses. We previously did this after we knew the dependence distance was positive. With this change, we check for independence before handling the negative distance case. The patch prevents LAA from reporting forward dependences for independent strided accesses. This change was requested in the review of D19984. llvm-svn: 270072
* [llvm-mc] - Teach llvm-mc to generate compressed debug sections in zlib style.George Rimar2016-05-195-48/+33
| | | | | | | | | | | | Before this patch llvm-mc generated zlib-gnu styled sections. That means no SHF_COMPRESSED flag was set, magic 'zlib' signature was used in combination with full size field. Sections were renamed to "*.z*". This patch reimplements the compression style to zlib one as zlib-gnu looks to be depricated everywhere. Differential revision: http://reviews.llvm.org/D20331 llvm-svn: 270070
* [AArch64 ] Generate a BFXIL from 'or (and X, Mask0Imm),(and Y, Mask1Imm)'.Chad Rosier2016-05-192-0/+126
| | | | | | | | | | | | | | | | | | Mask0Imm and ~Mask1Imm must be equivalent and one of the MaskImms is a shifted mask (e.g., 0x000ffff0). Both 'and's must have a single use. This changes code like: and w8, w0, #0xffff000f and w9, w1, #0x0000fff0 orr w0, w9, w8 into lsr w8, w1, #4 bfi w0, w8, #4, #12 llvm-svn: 270063
* [ARM] Add cdp intrinsic tests.Ranjeet Singh2016-05-193-8/+34
| | | | | | | | | | - Renamed intrinsics.ll to intrinsics-coprocessor.ll as all the tests were testing coprocessor instructions, also made the test checks match the full instruction. Differential Revision: http://reviews.llvm.org/D20393 llvm-svn: 270057
* Test commit.Ranjeet Singh2016-05-191-1/+1
| | | | llvm-svn: 270056
* [AMDGPU][llvm-mc] Fixes to support buffer atomics.Artem Tamazov2016-05-195-12/+413
| | | | | | | | | | | | Fixes for MUBUF_Atomic instructions to make operand list valid: - For RTN insns, make a copy of $vdata_in operand as $vdata. - Do not add operand for GLC, it is hardcoded and comes as a token. Workaround to avoid adding multiple default optional operands. Tests added. Differential Revision: http://reviews.llvm.org/D20257 llvm-svn: 270049
* ps][microMIPS] Add R_MICROMIPS_PC21_S1 relocationZoran Jovanovic2016-05-197-4/+42
| | | | | | Differential Revision: http://reviews.llvm.org/D15526 llvm-svn: 270048
* [X86][SSE2] Added _mm_move_* testsSimon Pilgrim2016-05-191-0/+31
| | | | llvm-svn: 270046
* [X86][SSE2] Added _mm_cast* and _mm_set* testsSimon Pilgrim2016-05-191-0/+720
| | | | llvm-svn: 270041
* [mips][mips16] Fix ZERO is not a CPU16Regs register error from the machine ↵Daniel Sanders2016-05-192-2/+3
| | | | | | | | | | | | | | verifier. Summary: Partially fixes PR27458 Reviewers: sdardis Subscribers: dsanders, llvm-commits, sdardis Differential Revision: http://reviews.llvm.org/D20330 llvm-svn: 270037
* [X86] Enable RRL part of the LEA optimization pass for -O2.Andrey Turetskiy2016-05-192-30/+47
| | | | | | | | | | Enable "Remove Redundant LEAs" part of the LEA optimization pass for -O2. This gives 6.4% performance improve on Broadwell on nnet benchmark from Coremark-pro. There is no significant effect on other benchmarks (Geekbench, Spec2000, Spec2006). Differential Revision: http://reviews.llvm.org/D19659 llvm-svn: 270036
* [mips][microMIPS] Implement BC1EQZC, BC1NEZC, BC2EQZC and BC2NEZC instructionsZlatko Buljan2016-05-1910-4/+111
| | | | | | Differential Revision: http://reviews.llvm.org/D18352 llvm-svn: 270030
* [X86] Generalize and combine some similar type constraints and node types. ↵Craig Topper2016-05-192-88/+57
| | | | | | No changes to the isel table size so the separation wasn't buying us anything. llvm-svn: 270026
* [X86] Simplify some type constraints by removing parts that were already ↵Craig Topper2016-05-191-12/+5
| | | | | | implied. llvm-svn: 270025
* CodeGen: Make the global-merge pass independently testable, and add a test.Peter Collingbourne2016-05-193-7/+41
| | | | llvm-svn: 270023
* Retry^3 "[ProfileData] (llvm) Use Error in InstrProf and Coverage, NFC"Vedant Kumar2016-05-1918-511/+619
| | | | | | | | | | | | | | | Transition InstrProf and Coverage over to the stricter Error/Expected interface. Changes since the initial commit: - Fix error message printing in llvm-profdata. - Check errors in loadTestingFormat() + annotateAllFunctions(). - Defer error handling in InstrProfIterator to InstrProfReader. - Remove the base ProfError class to work around an MSVC ICE. Differential Revision: http://reviews.llvm.org/D19901 llvm-svn: 270020
* [GuardWidening] Use getEquivalentICmp to fold constant comparesSanjoy Das2016-05-192-14/+68
| | | | | | | `ConstantRange::getEquivalentICmp` is more general, and better factored. llvm-svn: 270019
* [ConstantRange] Add an getEquivalentICmp helperSanjoy Das2016-05-193-0/+77
| | | | | | | Currently only its unit test uses it, but this will be used in a later change to simplify some logic in the GuardWidening pass. llvm-svn: 270018
* [WebAssembly] Update WebAssembly target for r269988.Dan Gohman2016-05-192-4/+11
| | | | llvm-svn: 270017
* [X86] Remove some type constraint classes and use already existing stricter ↵Craig Topper2016-05-191-16/+10
| | | | | | classes. llvm-svn: 270013
* [AVX512] Strengthen type constraints for VFIXUPIMM patterns and combine the ↵Craig Topper2016-05-191-7/+8
| | | | | | type constraints for vector and scalar. llvm-svn: 270012
* [WebAssembly] Make several CHECK lines less fragile using regexes and CHECK-DAG.Dan Gohman2016-05-192-31/+31
| | | | llvm-svn: 270011
* Fix some Clang-tidy modernize-use-bool-literals and Include What You Use ↵Eugene Zelenko2016-05-1911-96/+245
| | | | | | | | warnings in examples; other minor fixes. Differential revision: http://reviews.llvm.org/D20397 llvm-svn: 270008
* reduce indentation; NFCISanjay Patel2016-05-191-9/+7
| | | | llvm-svn: 270007
* [AArch64] Push comment into function. NFC.Chad Rosier2016-05-181-9/+9
| | | | llvm-svn: 270003
* AMDGPU: Fix verifier error when spilling undef subregMatt Arsenault2016-05-181-3/+11
| | | | llvm-svn: 270002
* [obj2yaml] Refactoring of dumping MachO section structsChris Bieneman2016-05-181-34/+44
| | | | | | This refactoring is to reduce code duplication between the 32-bit and 64-bit code paths. This refactoring will also make the special casing for other data after load commands cleaner. llvm-svn: 270001
* AMDGPU: Fix promote alloca for pointer loadsMatt Arsenault2016-05-183-6/+50
| | | | | | | If the load has a pointer type, we don't want to change its type. llvm-svn: 270000
* [LowerGuards] Rename variable; NFCSanjoy Das2016-05-181-3/+3
| | | | | | | PredicatePassProbability is a better name for what LikelyBranchWeight was trying to express. llvm-svn: 269999
* New pass: guard wideningSanjoy Das2016-05-1810-0/+813
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Implement guard widening in LLVM. Description from GuardWidening.cpp: The semantics of the `@llvm.experimental.guard` intrinsic lets LLVM transform it so that it fails more often that it did before the transform. This optimization is called "widening" and can be used hoist and common runtime checks in situations like these: ``` %cmp0 = 7 u< Length call @llvm.experimental.guard(i1 %cmp0) [ "deopt"(...) ] call @unknown_side_effects() %cmp1 = 9 u< Length call @llvm.experimental.guard(i1 %cmp1) [ "deopt"(...) ] ... ``` to ``` %cmp0 = 9 u< Length call @llvm.experimental.guard(i1 %cmp0) [ "deopt"(...) ] call @unknown_side_effects() ... ``` If `%cmp0` is false, `@llvm.experimental.guard` will "deoptimize" back to a generic implementation of the same function, which will have the correct semantics from that point onward. It is always _legal_ to deoptimize (so replacing `%cmp0` with false is "correct"), though it may not always be profitable to do so. NB! This pass is a work in progress. It hasn't been tuned to be "production ready" yet. It is known to have quadriatic running time and will not scale to large numbers of guards Reviewers: reames, atrick, bogner, apilipenko, nlewycky Subscribers: mcrosier, llvm-commits Differential Revision: http://reviews.llvm.org/D20143 llvm-svn: 269997
* Follow-up patch of http://reviews.llvm.org/D19948 to handle missing profiles ↵Dehao Chen2016-05-182-55/+70
| | | | | | | | | | | | | | when simplifying CFG. Summary: Set default branch weight to 1:1 if one of the branch has profile missing when simplifying CFG. Reviewers: spatel, davidxl Subscribers: danielcdh, llvm-commits Differential Revision: http://reviews.llvm.org/D20307 llvm-svn: 269995
* [MBP] Remove a redundant skipFunction(). NFC.Haicheng Wu2016-05-181-3/+0
| | | | | | | | skipFunction() is called twice. Differential Revision: http://reviews.llvm.org/D20377 llvm-svn: 269994
OpenPOWER on IntegriCloud