- Oct 15, 2017
-
-
whitequark authored
This can result in significant code size savings in some cases, e.g. an interrupt table all filled with the same assembly stub in a certain Cortex-M BSP results in code blowup by a factor of 2.5. Differential Revision: https://reviews.llvm.org/D34806 llvm-svn: 315853
-
whitequark authored
This reduces code size for constructs like vtables or interrupt tables that refer to functions in global initializers. Differential Revision: https://reviews.llvm.org/D34805 llvm-svn: 315852
-
Amjad Aboud authored
Differential Revision: https://reviews.llvm.org/D38359 llvm-svn: 315851
-
Hongbin Zheng authored
This avoid code duplication and allow us to add the disable unroll metadata elsewhere. Differential Revision: https://reviews.llvm.org/D38928 llvm-svn: 315850
-
Craig Topper authored
Summary: It's better to use our shuffle lowering code to handle these than loading an immediate into a k-register. It really feels like this should be a DAG combine optimization rather than a lowering operation, but that's a problem for another day. Reviewers: RKSimon, delena, zvi Reviewed By: delena Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D38932 llvm-svn: 315849
-
Craig Topper authored
We should be able to fold constant conditions by converting to shuffles, but fixing that would break these tests in their current form. Since they are really trying to test masking ops, add a non-constant mask to the selects. llvm-svn: 315848
-
Vitaly Buka authored
llvm-svn: 315847
-
Benjamin Kramer authored
llvm-svn: 315845
-
Vitaly Buka authored
4096 is not enough on some platform, e.g. Debian 4.9.0-3-amd64 llvm-svn: 315844
-
Daniel Sanders authored
Summary: There is an important mismatch between ISD::LOAD and G_LOAD (and likewise for ISD::STORE and G_STORE). In SelectionDAG, ISD::LOAD is a non-atomic load and atomic loads are handled by a separate node. However, this is not true of GlobalISel's G_LOAD. For G_LOAD, the MachineMemOperand indicates the atomicity of the operation. As a result, this mapping must also add a predicate that checks for non-atomic MachineMemOperands. This is NFC since these nodes always have predicates in practice and are therefore always rejected at the moment. Depends on D37443 Reviewers: ab, qcolombet, t.p.northover, rovka, aditya_nandakumar Reviewed By: qcolombet Subscribers: kristof.beyls, llvm-commits, igorb Differential Revision: https://reviews.llvm.org/D37445 llvm-svn: 315843
-
Faisal Vali authored
[c++2a] Fix failing regression test related to not adding the extension warning to a diagnostic group (in r315840) In passing also complete a comment that I left uncompleted. For ease of reference, here's the parent commit: https://reviews.llvm.org/rL315840 llvm-svn: 315842
-
Daniel Sanders authored
Summary: GlobalISel and SelectionDAG require different code for the common load/store predicates due to differences in the representation. For example: SelectionDAG: (load<signext,i8>:i32 GPR32:$addr) // The <> denote properties of the SDNode that are not printed in the DAG GlobalISel: (G_SEXT:s32 (G_LOAD:s8 GPR32:$addr)) Even without that, differences in the IR (SDNode vs MachineInstr) require differences in the C++ predicate. This patch moves the implementation of the common load/store predicates into tablegen so that it can handle these differences. It's NFC for SelectionDAG since it emits equivalent code and it's NFC for GlobalISel since the rules involving the relevant predicates are still rejected by the importer. Depends on D36618 Reviewers: ab, qcolombet, t.p.northover, rovka, aditya_nandakumar Subscribers: llvm-commits, igorb Differential Revision: https://reviews.llvm.org/D37443 Includes a partial revert of r315826 since this patch makes it necessary for getPredCode() to return a std::string and getImmCode() should have the same interface as getPredCode(). llvm-svn: 315841
-
Faisal Vali authored
This patch implements an extension to the preprocessor: __VA_OPT__(contents) --> which expands into its contents if variadic arguments are supplied to the parent macro, or behaves as an empty token if none. - Currently this feature is only enabled for C++2a (this could be enabled, with some careful tweaks, for other dialects with the appropriate extension or compatibility warnings) - The patch was reviewed here: https://reviews.llvm.org/D35782 and asides from the above (and moving some of the definition and expansion recognition logic into the corresponding state machines), I believe I incorporated all of Richard's suggestions. A few technicalities (most of which were clarified through private correspondence between rsmith, hubert and thomas) are worth mentioning. Given: #define F(a,...) a #__VA_OPT__(a ## a) a ## __VA_OPT__(__VA_ARGS__) - The call F(,) Does not supply any tokens for the variadic arguments and hence VA_OPT behaves as a placeholder. - When expanding VA_OPT (for e.g. F(,1) token pasting occurs eagerly within its contents if the contents need to be stringified. - A hash or a hashhash prior to VA_OPT does not inhibit expansion of arguments if they are the first token within VA_OPT. - When a variadic argument is supplied, argument substitution occurs within the contents as does stringification - and these resulting tokens are inserted back into the macro expansions token stream just prior to the entire stream being rescanned and concatenated. See wg21.link/P0306 for further details on the feature. Acknowledgment: This patch would have been poorer if not for Richard Smith's usual thoughtful analysis and feedback. llvm-svn: 315840
-
Davide Italiano authored
GCC otherwise emits a "defined but not used" warning on the member function. llvm-svn: 315838
-
Konstantin Zhuravlyov authored
It fails on mips llvm-svn: 315837
-
Konstantin Zhuravlyov authored
Test is fixed in r315830 llvm-svn: 315831
-
Konstantin Zhuravlyov authored
Fixes cfe/trunk/test/Misc/backend-resource-limit-diagnostics.cl test after r315808 We may hit few other similar issues, but I want to discuss good solution offline. llvm-svn: 315830
-
Bruno Cardoso Lopes authored
This is causing: http://green.lab.llvm.org/green/job/clang-stage1-cmake-RA-incremental/43381 llvm-svn: 315829
-
- Oct 14, 2017
-
-
Craig Topper authored
llvm-svn: 315828
-
George Karpenkov authored
Correctly depend on llvm-xray, make sure unit tests are being run. Differential Revision: https://reviews.llvm.org/D38917 llvm-svn: 315827
-
Simon Pilgrim authored
Avoid unnecessary std::string creations in the TreePredicateFn getters. llvm-svn: 315826
-
Simon Pilgrim authored
llvm-svn: 315825
-
Simon Pilgrim authored
llvm-svn: 315824
-
Bruno Cardoso Lopes authored
This reverts commit r315781, breaks: http://green.lab.llvm.org/green/job/Compiler_Verifiers_GlobalISEL/9882 llvm-svn: 315823
-
Konstantin Zhuravlyov authored
- Update docs to match llvm coding style - Add missing FP16_OVFL bit for gfx9 - Fix the size of the kernel descriptor in the docs Differential Revision: https://reviews.llvm.org/D38902 llvm-svn: 315822
-
Konstantin Zhuravlyov authored
Differential Revision: https://reviews.llvm.org/D38753 llvm-svn: 315821
-
Konstantin Zhuravlyov authored
Differential Revision: https://reviews.llvm.org/D38752 llvm-svn: 315819
-
Simon Pilgrim authored
llvm-svn: 315818
-
Simon Pilgrim authored
llvm-svn: 315817
-
Konstantin Zhuravlyov authored
llvm-svn: 315816
-
Simon Pilgrim authored
llvm-svn: 315815
-
Ed Maste authored
libunwind is known to work on FreeBSD i386, amd64 (x86_64) and arm64. It is the unwinder provided by the base system on all of those architectures. While here sort the OS list. Differential Revision: https://reviews.llvm.org/D38900 llvm-svn: 315814
-
Konstantin Zhuravlyov authored
Differential Revision: https://reviews.llvm.org/D38751 llvm-svn: 315813
-
Konstantin Zhuravlyov authored
- Do not allow amd_amdgpu_isa directives on non-amdgcn architectures - Do not allow amd_amdgpu_hsa_metadata on non-amdhsa OSes - Do not allow amd_amdgpu_pal_metadata on non-amdpal OSes Differential Revision: https://reviews.llvm.org/D38750 llvm-svn: 315812
-
Benjamin Kramer authored
The warnings in libc++ tests were fixed in the meantime. llvm-svn: 315811
-
Konstantin Zhuravlyov authored
Differential Revision: https://reviews.llvm.org/D38749 llvm-svn: 315810
-
Benjamin Kramer authored
llvm-svn: 315809
-
Konstantin Zhuravlyov authored
- Emit NT_AMD_AMDGPU_ISA - Add assembler parsing for isa version directive - If isa version directive does not match command line arguments, then return error Differential Revision: https://reviews.llvm.org/D38748 llvm-svn: 315808
-
Simon Pilgrim authored
If we are applying a byte mask to a value extracted from a shuffle, see if we can combine the mask into shuffle. Fixes the last issue with PR22415 llvm-svn: 315807
-
NAKAMURA Takumi authored
check-libcxx dislikes it. llvm-svn: 315806
-