summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
...
* FuzzMutate: Fix arch parsing in FuzzerCLIJustin Bogner2017-10-171-1/+1
| | | | | | | | The right way to parse arch names is by creating a triple. This was using getArchTypeForLLVMName before, which doesn't really do the right thing here. llvm-svn: 315965
* [ExecutionEngine] Correct the size of a write in a COFF i386 relocationShoaib Meenai2017-10-172-8/+12
| | | | | | | | | | | We want to be writing a 32bit value, so we should be writing 4 bytes instead of 2. Patch by Alex Langford <apl@fb.com>. Differential Revision: https://reviews.llvm.org/D38872 llvm-svn: 315964
* [llvm-cov] Add one correction to r315960 (PR34962)Vedant Kumar2017-10-172-8/+7
| | | | | | | | | In r315960, I accidentally assumed that the first line segment is guaranteed to be the non-gap region entry segment (given that one is present). It can actually be any segment on the line, and the test I checked in demonstrates that. llvm-svn: 315963
* Revert "[SCEV] Maintain and use a loop->loop invalidation dependency"Sanjoy Das2017-10-173-140/+118
| | | | | | | | | This reverts commit r315713. It causes PR34968. I think I know what the problem is, but I don't think I'll have time to fix it this week. llvm-svn: 315962
* Try to make crlf portable to other printf implementationsReid Kleckner2017-10-172-1/+3
| | | | llvm-svn: 315961
* [llvm-cov] Remove workaround in line execution count calculation (PR34962)Vedant Kumar2017-10-164-15/+20
| | | | | | | | | | | | | Gap areas make it possible to correctly determine when to use counts from deferred regions. Before gap areas were introduced, llvm-cov needed to use a heuristic to do this: it ignored counts from segments that start, but do not end, on a line. This heuristic breaks down on a simple example (see PR34962). This patch removes the heuristic and picks counts from any region entry segment which isn't a gap area. llvm-svn: 315960
* Use the return value of UpdateNodeOperands(); in some cases, ↵Mark Searles2017-10-163-3/+97
| | | | | | | | UpdateNodeOperands() modifies the node in-place and using the return value isn’t strictly necessary. However, it does not necessarily modify the node, but may return a resultant node if it already exists in the DAG. See comments in UpdateNodeOperands(). In that case, the return value must be used to avoid such scenarios as an infinite loop (node is assumed to have been updated, so added back to the worklist, and re-processed; however, node hasn’t changed so it is once again passed to UpdateNodeOperands(), assumed modified, added back to worklist; cycle infinitely repeats). Differential Revision: https://reviews.llvm.org/D38466 llvm-svn: 315957
* [X86][AVX] Add v4x64 vector shuffle test for <0,2,1,3> maskSimon Pilgrim2017-10-161-0/+42
| | | | llvm-svn: 315955
* cmake: BSD: Mark /usr/local/include as system include directoryMatthias Braun2017-10-161-1/+1
| | | | | | | | | | | | | | | We add /usr/local/include to the include directory list for some BSD systems. We should mark this as a system directory to avoid files from /usr/local/include getting picked over files shipping with llvm. This typically manifested as gtest headers installed with the system getting picked over the ones shipping with llvm. Patch by Petr Penzin <penzin.dev@gmail.com> Differential Revision: https://reviews.llvm.org/D37415 llvm-svn: 315952
* Re-apply [AArch64][RegisterBankInfo] Use the statically computed mappings ↵Quentin Colombet2017-10-162-4/+100
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | for COPY This reverts commit r315823, thus re-applying r315781. Also make sure we don't use G_BITCAST mapping for non-generic registers. Non-generic registers don't have a type but do have a reg bank. Something the COPY mapping now how to deal with but the G_BITCAST mapping don't. -- Original Commit Message -- We use to resort on the generic implementation to get the mappings for COPYs. The generic implementation resorts on table lookup and dynamically allocated objects to get the valid mappings. Given we already know how to map G_BITCAST and have the static mappings for them, use that code path for COPY as well. This is much more efficient. Improve the compile time of RegBankSelect by up to 20%. Note: When we eventually generate all the mappings via TableGen, we wouldn't have to do that dance to shave compile time. The intent of this change was to make sure that moving to static structure really pays off. NFC. llvm-svn: 315947
* [AArch64][RegisterBankInfo] Add mapping support for G_BITCAST of s128Quentin Colombet2017-10-162-2/+29
| | | | | | Anything bigger than 64-bit just map to FPR. llvm-svn: 315946
* [AArch64][LegalizerInfo] Mark s128 G_BITCAST legalQuentin Colombet2017-10-162-1/+29
| | | | | | | We used to mark all G_BITCAST of 128-bit legal but only for vector types. Scalars of this size are just fine as well. llvm-svn: 315945
* Add !callees metadataMatthew Simpson2017-10-166-2/+37
| | | | | | | | | This patch adds a new kind of metadata that indicates the possible callees of indirect calls. Differential Revision: https://reviews.llvm.org/D37354 llvm-svn: 315944
* [MC] Lex CRLF as one tokenReid Kleckner2017-10-162-1/+14
| | | | | | | | | | This will prevent doubling of line endings when parsing assembly and emitting assembly. Otherwise we'd parse the directive, consume the end of statement, hit the next end of statement, and emit a fresh newline. llvm-svn: 315943
* [X86][3DNow] Add scheduling latency/throughput tests for 3DNow! instructionsSimon Pilgrim2017-10-161-0/+372
| | | | llvm-svn: 315942
* [JumpThreading] Move two PredValueInfoTy vectors to a scope closer to their ↵Craig Topper2017-10-161-2/+2
| | | | | | usage. NFCI llvm-svn: 315941
* [Transforms] Fix some Clang-tidy modernize and Include What You Use ↵Eugene Zelenko2017-10-1611-151/+310
| | | | | | warnings; other minor fixes (NFC). llvm-svn: 315940
* [X86][MMX] Add scheduling latency/throughput tests for MMX instructionsSimon Pilgrim2017-10-161-0/+6342
| | | | llvm-svn: 315939
* Replace make_range in MachineRegisterInfo with ArrayRef, NFCKrzysztof Parzyszek2017-10-161-2/+3
| | | | llvm-svn: 315938
* [libFuzzer] Delete llvm/lib/FuzzerVitaly Buka2017-10-1647-7427/+0
| | | | | | | | | | | | Summary: Code is already in compiler-rt Reviewers: kcc Subscribers: krytarowski, llvm-commits, hiraditya Differential Revision: https://reviews.llvm.org/D38912 llvm-svn: 315937
* Add base relative relocation record that can be used for the following case ↵Tony Tye2017-10-163-1/+13
| | | | | | | | | | | | | | (OpenCL example): static __global int Var = 0; __global int* Ptr[] = {&Var}; ... In this case Var is a non premptable symbol and so its address can be used as the value of Ptr, with a base relative relocation that will add the delta between the ELF address and the actual load address. Such relocations do not require a symbol. Differential Revision: https://reviews.llvm.org/D38909 llvm-svn: 315935
* fix llvm-isel-fuzzer: LLVMFuzzerTestOneInput should never return non-zero ↵Kostya Serebryany2017-10-161-1/+1
| | | | | | (according to the contract) llvm-svn: 315933
* Revert MSVC 2017 build fix and fix it by moving the method that implicitly ↵Reid Kleckner2017-10-161-32/+34
| | | | | | instantiates addPredicate out of line llvm-svn: 315932
* Fix the build of GlobalISelEmitter with MSVC 2017 by specializing earlierReid Kleckner2017-10-161-12/+12
| | | | | | | MSVC doesn't seem to like implicitly instantiating addPredicate and then explicitly specializing it later. It causes an internal compiler error. llvm-svn: 315930
* Add iterator range MachineRegisterInfo::liveins(), adopt users, NFCKrzysztof Parzyszek2017-10-169-31/+25
| | | | llvm-svn: 315927
* [Hexagon] Rangify some loops, NFCKrzysztof Parzyszek2017-10-162-44/+26
| | | | | | Recommit r315763 with a fix. llvm-svn: 315925
* [SCEV] Rename getMaxBECount and update comments. NFCAnna Thomas2017-10-162-11/+12
| | | | | | Post commit review comments at D38825. llvm-svn: 315920
* [SparsePropagation] Enable interprocedural analysisMatthew Simpson2017-10-163-131/+702
| | | | | | | | | | | | | | | | | | This patch adds the ability to perform IPSCCP-like interprocedural analysis to the generic sparse propagation solver. The patch gives clients the ability to define their own custom LatticeKey types that the generic solver maps to custom LatticeVal types. The custom lattice keys can be used, for example, to distinguish among mappings for regular values, values returned from functions, and values stored in global variables. Clients are responsible for defining how to convert between LatticeKeys and LLVM Values by providing a specialization of the LatticeKeyInfo template. The added unit tests demonstrate how the generic solver can be used to perform a simplified version of interprocedural constant propagation. Differential Revision: https://reviews.llvm.org/D37353 llvm-svn: 315919
* [AMDGPU] : revert r315908Alexander Timofeev2017-10-162-39/+10
| | | | llvm-svn: 315916
* [ObjCARC] Do not move a release that has the clang.imprecise_release tagAkira Hatanaka2017-10-162-3/+28
| | | | | | | | | | | | | | above PHI instructions. ARC optimizer has an optimization that moves a call to an ObjC runtime function above a phi instruction when the phi has a null operand and is an argument passed to the function call. This optimization should not kick in when the runtime function is an objc_release that releases an object with precise lifetime semantics. rdar://problem/34959669 llvm-svn: 315914
* [x86] add minmax tests with more predicate coverage; NFCSanjay Patel2017-10-161-0/+30
| | | | llvm-svn: 315913
* [TableGen] Simplify CallingConvEmitter.cpp. NFC.Javed Absar2017-10-161-8/+8
| | | | llvm-svn: 315911
* [InstCombine] don't unnecessarily generate a constant; NFCISanjay Patel2017-10-161-3/+2
| | | | llvm-svn: 315910
* [ValueTracking] fix typos, formatting; NFCSanjay Patel2017-10-161-11/+10
| | | | llvm-svn: 315909
* [AMDGPU] Prevent Machine Copy Propagation from replacing live copy with the ↵Alexander Timofeev2017-10-162-11/+40
| | | | | | | | dead one Differential revision: https://reviews.llvm.org/D38754 llvm-svn: 315908
* Fix test name typo.Simon Pilgrim2017-10-161-5/+5
| | | | llvm-svn: 315907
* [X86][SSE] Added additional PACKUS shuffle testsSimon Pilgrim2017-10-163-0/+102
| | | | | | Mainly inspired by PR34773 llvm-svn: 315906
* [mips][micromips] Fix (dis)assembly of bc1(t|f)Simon Dardis2017-10-166-17/+32
| | | | | | | | | | | | Previously these instructions were marked codegen only and had an under-specified instruction description that did not record the fcc register. Reviewers: atanasyan, abeserminji Differential Revision: https://reviews.llvm.org/D38847 llvm-svn: 315905
* ISel type legalizer: debug messages. NFC.Sjoerd Meijer2017-10-162-4/+17
| | | | | | | | | | | Minor addition and follow up of r314773 and r311533: this adds more debug messages to the type legalizer. For each node, it dumps legalization info for results and operands nodes, rather than just the final legalized node. Differential Revision: https://reviews.llvm.org/D38726 llvm-svn: 315904
* Fix or vs || typo.Simon Pilgrim2017-10-161-1/+1
| | | | llvm-svn: 315903
* [mips] Provide alternate predicates for constant synthesisStefan Maksimovic2017-10-163-17/+166
| | | | | | | Ordering of patterns should not be of importance anymore since the predicates used are mutually exclusive now. llvm-svn: 315901
* [PowerPC] fix up in sign-/zero-extension eliminationHiroshi Inoue2017-10-161-0/+2
| | | | | | This patch fixes a potential problem in my previous commit (https://reviews.llvm.org/rL315888) by adding a null check. llvm-svn: 315900
* This patch is a result of D37262: The issues with X86 prefixes. It closes ↵Andrew V. Tischenko2017-10-1615-192/+362
| | | | | | PR7709, PR17697, PR19251, PR32809 and PR21640. There could be other bugs closed by this patch. llvm-svn: 315899
* [llvm-dwarfdump] - Teach tool to parse DW_CFA_GNU_args_size.George Rimar2017-10-162-0/+16
| | | | | | | | | Currently llvm-dwarfdump runs into llvm_unreachable when faces DW_CFA_GNU_args_size. Patch implements the support. Differential revision: https://reviews.llvm.org/D38879 llvm-svn: 315897
* Revert rL315894, "SLPVectorizer.cpp: Try to appease stage2-3 difference. ↵NAKAMURA Takumi2017-10-162-162/+23
| | | | | | (D38586)" llvm-svn: 315896
* Move folding of icmp with zero after checking for min/max idioms.Nikolai Bozhenov2017-10-163-12/+24
| | | | | | | | | | | | | | | | | | | | | Summary: The following transformation for cmp instruction: icmp smin(x, PositiveValue), 0 -> icmp x, 0 should only be done after checking for min/max to prevent infinite looping caused by a reverse canonicalization. That is why this transformation was moved to place after the mentioned check. Reviewers: spatel, efriedma Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D38934 Patch by: Artur Gainullin <artur.gainullin@intel.com> llvm-svn: 315895
* SLPVectorizer.cpp: Try to appease stage2-3 difference. (D38586)NAKAMURA Takumi2017-10-162-23/+162
| | | | llvm-svn: 315894
* [TableGen] Range loopify DAGISelMatcher. NFC.Javed Absar2017-10-161-15/+15
| | | | llvm-svn: 315891
* [aarch64][globalisel] Fix a crash in selectAddrModeIndexed() caused by ↵Daniel Sanders2017-10-161-1/+5
| | | | | | | | | | incorrect G_FRAME_INDEX handling The wrong operand was being rendered to the result instruction. The crash was detected by Bitcode/simd_ops/AArch64_halide_runtime.bc llvm-svn: 315890
* bpf: fix bug on silently truncating 64-bit immediateYonghong Song2017-10-163-3/+42
| | | | | | | | | | | | | | | | We came across an llvm bug when compiling some testcases that 64-bit immediates are silently truncated into 32-bit and then packed into BPF_JMP | BPF_K encoding. This caused comparison with wrong value. This bug looks to be introduced by r308080. The Select_Ri pattern is supposed to be lowered into J*_Ri while the latter only support 32-bit immediate encoding, therefore Select_Ri should have similar immediate predicate check as what J*_Ri are doing. Reported-by: Jakub Kicinski <jakub.kicinski@netronome.com> Signed-off-by: Jiong Wang <jiong.wang@netronome.com> Reviewed-by: Yonghong Song <yhs@fb.com> llvm-svn: 315889
OpenPOWER on IntegriCloud