- Aug 24, 2017
-
-
Pete Couperus authored
Add the ARC backend as an experimental target to lib/Target. Reviewed at: https://reviews.llvm.org/D36331 llvm-svn: 311667
-
Krasimir Georgiev authored
Summary: This is a follow-up of https://reviews.llvm.org/D37105, where a slight refactoring of the constructors of AsmRewrite is proposed. Reviewers: coby Reviewed By: coby Differential Revision: https://reviews.llvm.org/D37110 llvm-svn: 311666
-
Sanjay Patel authored
llvm-svn: 311665
-
Sjoerd Meijer authored
Instead of loading 0 from a constant pool, it's of course much better to materialize it using an fmov and the zero register. Thanks to Ahmed Bougacha for the suggestion. Differential Revision: https://reviews.llvm.org/D37102 llvm-svn: 311662
-
Sanjay Patel authored
We can reuse this code with other div/rem transforms as shown in: https://reviews.llvm.org/D31037 https://bugs.llvm.org/show_bug.cgi?id=31028 llvm-svn: 311661
-
Chad Rosier authored
Differential Revision: https://reviews.llvm.org/D37081 llvm-svn: 311659
-
Michael Zuckerman authored
llvm-svn: 311658
-
Coby Tayree authored
rL311639 created X86AsmParser a dependency in X86AsmPrinter, which broke builds this fix adds the necessary dep llvm-svn: 311657
-
Krasimir Georgiev authored
Summary: CodeGen/ms-inline-asm.c test triggers msan use-of-uninitialized-value here: llvm/lib/MC/MCParser/AsmParser.cpp:5629:7 Reviewers: bkramer, coby Differential Revision: https://reviews.llvm.org/D37105 llvm-svn: 311653
-
Krzysztof Parzyszek authored
The check (assuming positive stride) for validity of memmove should be (a) the destination is at a lower address than the source, or (b) the distance between the source and destination is greater than or equal the number of bytes copied. For the second part it is sufficient to assume that the destination is at a higher address, since the opposite case is covered by (a). The distance calculation was previously done by subtracting the pointers in the wrong order. llvm-svn: 311650
-
Evgeny Astigeevich authored
ARMTargetLowering::isLegalAddressingMode can accept illegal addressing modes for the Thumb1 target. This causes generation of redundant code and affects performance. This fixes PR34106: https://bugs.llvm.org/show_bug.cgi?id=34106 Differential Revision: https://reviews.llvm.org/D36467 llvm-svn: 311649
-
Tobias Grosser authored
Summary: We add the precise cache sizes and associativity for the following Intel architectures: - Penry - Nehalem - Westmere - Sandy Bridge - Ivy Bridge - Haswell - Broadwell - Skylake - Kabylake Polly uses since several months a performance model for BLAS computations that derives optimal cache and register tile sizes from cache and latency information (based on ideas from "Analytical Modeling Is Enough for High-Performance BLIS", by Tze Meng Low published at TOMS 2016). While bootstrapping this model, these target values have been kept in Polly. However, as our implementation is now rather mature, it seems time to teach LLVM itself about cache sizes. Interestingly, L1 and L2 cache sizes are pretty constant across micro-architectures, hence a set of architecture specific default values seems like a good start. They can be expanded to more target specific values, in case certain newer architectures require different values. For now a set of Intel architectures are provided. Just as a little teaser, for a simple gemm kernel this model allows us to improve performance from 1.2s to 0.27s. For gemm kernels with less optimal memory layouts even larger speedups can be reported. Reviewers: Meinersbur, bollu, singam-sanjay, hfinkel, gareevroman, fhahn, sebpop, efriedma, asb Reviewed By: fhahn, asb Subscribers: lsaba, asb, pollydev, llvm-commits Differential Revision: https://reviews.llvm.org/D37051 llvm-svn: 311647
-
Sjoerd Meijer authored
This is a follow up patch of r311154 and introduces custom lowering of copysign f16 to avoid promotions to single precision types when the subtarget supports fullfp16. Differential Revision: https://reviews.llvm.org/D36893 llvm-svn: 311646
-
Daniel Sanders authored
Summary: This patch adds support for predicates on imm nodes but only for ImmLeaf and not for PatLeaf or PatFrag and only where the value does not need to be transformed before being rendered into the instruction. The limitation on PatLeaf/PatFrag/SDNodeXForm is due to differences in the necessary target-supplied C++ for GlobalISel. Depends on D36085 The previous commit was reverted for breaking the build but this appears to have been the recurring problem on the Windows bots with tablegen not being re-run when llvm-tblgen is changed but the .td's aren't. If it re-occurs then forcing a build with clean=True should fix it but this string should do this in advance: Requires a clean build. Reviewers: ab, t.p.northover, qcolombet, rovka, aditya_nandakumar Reviewed By: rovka Subscribers: kristof.beyls, javed.absar, igorb, llvm-commits Differential Revision: https://reviews.llvm.org/D36086 llvm-svn: 311645
-
Coby Tayree authored
This patch is intended to enable the use of basic double letter constraints used in GCC extended inline asm {Yi Y2 Yz Y0 Ym Yt}. Supersedes D35204 Clang counterpart: D36371 Differential Revision: https://reviews.llvm.org/D36369 llvm-svn: 311644
-
Mikael Holmen authored
Summary: When reassociating an expression, do not drop the instruction's original debug location in case the replacement location is missing. The debug location must at least not be dropped for inlinable callsites of debug-info-bearing functions in debug-info-bearing functions. Failing to do so would result in an "inlinable function " "call in a function with debug info must have a !dbg location" error in the verifier. As preserving the original debug location is not expected to result in overly jumpy debug line information, it is preserved for all other cases too. This fixes PR34231: https://bugs.llvm.org/show_bug.cgi?id=34231 Original patch by David Stenberg Reviewers: davide, craig.topper, mcrosier, dblaikie, aprantl Reviewed By: davide, aprantl Subscribers: aprantl Differential Revision: https://reviews.llvm.org/D36865 llvm-svn: 311642
-
Coby Tayree authored
Some refactoring to X86AsmParser, mostly regarding the way rewrites are conducted. Mainly, we try to concentrate all the rewrite effort under one hood, so it'll hopefully be less of a mess and easier to maintain and understand. naturally, some frontend tests were affected: D36794 Differential Revision: https://reviews.llvm.org/D36793 llvm-svn: 311639
-
Matt Arsenault authored
Fixes not finding the called global for AMDGPU call pseudoinstructions, which prevented IPRA from doing much. llvm-svn: 311637
-
Matt Arsenault authored
llvm-svn: 311636
-
Sjoerd Meijer authored
Fix for copy-paste mistake in r311154; setOperationAction for fcos and frem f16 operands appeared twice (and it should be set to 'promote'). Differential Revision: https://reviews.llvm.org/D37071 llvm-svn: 311635
-
Chandler Carruth authored
Mostly this involved giving unnamed values names and running the IR through `opt` to re-format it but merging in any important comments in the original. I then deleted pointless comments and inlined the function attributes for ease of reading and editting. All of this is to make it much easier to see the instructions being generated here and evaluate any updates to the tests. llvm-svn: 311634
-
Igor Breger authored
Summary: Support G_IMPLICIT_DEF. Reviewers: zvi, guyblank, t.p.northover Reviewed By: guyblank Subscribers: rovka, llvm-commits, kristof.beyls Differential Revision: https://reviews.llvm.org/D36733 llvm-svn: 311633
-
Lang Hames authored
ARGN is the sublist of unnamed arguments, not the count of the arguments. llvm-svn: 311632
-
Lang Hames authored
This just switches handleAllErrors from using custom assertions that all errors have been handled to using cantFail. This change involves moving some of the class and function definitions around though. llvm-svn: 311631
-
Wei Ding authored
Differential Revision: http://reviews.llvm.org/D36335 llvm-svn: 311629
-
Adam Nemet authored
We were missing size_t (unsigned long) on macOS. llvm-svn: 311628
-
Daniel Berlin authored
llvm-svn: 311626
-
Eric Beckmann authored
Summary: Previously, llvm-cvtres crashes on .res files which are empty except for the null header. This allows the library to simply pass over them. Subscribers: llvm-commits, hiraditya Differential Revision: https://reviews.llvm.org/D37044 llvm-svn: 311625
-
Hans Wennborg authored
When one operand is a user of another in a promoted binary operation we may replace and delete the returned value before returning triggering an assertion. Reorder node replacements to prevent this. Fixes PR34137. Landing on behalf of Nirav. Differential Revision: https://reviews.llvm.org/D36581 llvm-svn: 311623
-
Dylan McKay authored
llvm-svn: 311620
-
Dehao Chen authored
Summary: This patch adds test to cover the logic guarded by "accurate-sample-profile" flag. Reviewers: davidxl Reviewed By: davidxl Subscribers: sanjoy, llvm-commits, eraman Differential Revision: https://reviews.llvm.org/D37084 llvm-svn: 311618
-
Tim Northover authored
Switching to external relocations for ARM-mode branches (to allow Thumb interworking when the offset is unencodable) causes calls to temporary symbols to be miscompiled and instead go to the parent externally visible symbol. Calling a temporary never happens in compiled code, but can occasionally in hand-written assembly. llvm-svn: 311611
-
Adrian Prantl authored
llvm-svn: 311610
-
- Aug 23, 2017
-
-
Aditya Nandakumar authored
llvm-svn: 311609
-
Adrian Prantl authored
Found via https://bugs.llvm.org/show_bug.cgi?id=33997. llvm-svn: 311608
-
Jonas Devlieghere authored
Differential revision: https://reviews.llvm.org/D37070 llvm-svn: 311605
-
Rong Xu authored
Current PGO only annotates the edge weight for branch and switch instructions with profile counts. We should also annotate the indirectbr instruction as all the information is there. This patch enables the annotating for indirectbr instructions. Also uses this annotation in branch probability analysis. Differential Revision: https://reviews.llvm.org/D37074 llvm-svn: 311604
-
Geoff Berry authored
LDPDi was incorrectly marked as ignoring the destination register in the prefetcher tag. llvm-svn: 311599
-
Pete Couperus authored
Fix instrinsic -> intrinsic typo. llvm-svn: 311598
-
Aditya Nandakumar authored
G_PHI has the same semantics as PHI but also has types. This lets us verify that the types in the G_PHI are consistent. This also allows specifying legalization actions for G_PHIs. https://reviews.llvm.org/D36990 llvm-svn: 311596
-