- Mar 15, 2021
-
-
Nathan Chancellor authored
Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D98613
-
Chris Lattner authored
We know that all ConstantLike operations have one result and no operands, so check this first before doing the trait check. This change speeds up Canonicalize on a CIRCT testcase by ~5%. Differential Revision: https://reviews.llvm.org/D98615
-
Hsiangkai Wang authored
Types of fractional LMUL and LMUL=1 are all using VR register class. When using inline asm, it will use the first type in the register class as the type for the register. It is not necessary the same as the value type. We need to use INSERT_SUBVECTOR/EXTRACT_SUBVECToR/BITCAST to make it legal to put the value in the corresponding register class. Differential Revision: https://reviews.llvm.org/D97480
-
Chris Lattner authored
Two changes: 1) Change the canonicalizer to walk the function in top-down order instead of bottom-up order. This composes well with the "top down" nature of constant folding and simplification, reducing iterations and re-evaluation of ops in simple cases. 2) Explicitly enter existing constants into the OperationFolder table before canonicalizing. Previously we would "constant fold" them and rematerialize them, wastefully recreating a bunch fo constants, which lead to pointless memory traffic. Both changes together provide a 33% speedup for canonicalize on some mid-size CIRCT examples. One artifact of this change is that the constants generated in normal pattern application get inserted at the top of the function as the patterns are applied. Because of this, we get "inverted" constants more often, which is an aethetic change to the IR but does permute some testcases. Differential Revision: https://reviews.llvm.org/D98609
-
Stephen Kelly authored
This reverts commit 91abaa1f.
-
Stephen Kelly authored
This reverts commit 12dac66f.
-
Craig Topper authored
[RISCV] Give an explicit error if 'generic' CPU is passed instead of 'generic-rv32' or 'generic-rv64'. Validate 64Bit feature against the triple. I encountered a project that uses llvm that passes "generic" by default. While I could fix that project, I wouldn't be surprised if other projects did something similar. So it seems like a good idea to provide a better error here. I've also added validation of the 64Bit feature against the triple so that we can catch a mismatched CPU before failing in a mysterious way. We can make it pretty far in isel because we calculate XLenVT from the triple and use that to set up the legal integer type. Reviewed By: luismarques, khchen Differential Revision: https://reviews.llvm.org/D98307
-
Stephen Kelly authored
-
Stephen Kelly authored
Generate a json file containing descriptions of AST classes and their public accessors which return SourceLocation or SourceRange. Use the JSON file to generate a C++ API and implementation for accessing the source locations and method names for accessing them for a given AST node. This new API can be used to implement 'srcloc' output in clang-query: http://ce.steveire.com/z/m_kTIo The JSON file can also be used to generate bindings for other languages, such as Python and Javascript: https://steveire.wordpress.com/2019/04/30/the-future-of-ast-matching In this first version of this feature, only the accessors for Stmt classes are generated, not Decls, TypeLocs etc. Those can be added after this change is reviewed, as this change is mostly about infrastructure of these code generators. Also in this version, the platforms/cmake configurations are excluded as much as possible so that support can be added iteratively. Currently a break on any platform causes a revert of the entire feature. This way, the `OR WIN32` can be removed in a future commit and if it breaks the buildbots, only that commit gets reverted, making the entire process easier to manage. Differential Revision: https://reviews.llvm.org/D93164
-
- Mar 14, 2021
-
-
Stephen Kelly authored
This reverts commit 477e4b97.
-
Stephen Kelly authored
This reverts commit 6b010c6f.
-
Stephen Kelly authored
-
Craig Topper authored
-
Stephen Kelly authored
Generate a json file containing descriptions of AST classes and their public accessors which return SourceLocation or SourceRange. Use the JSON file to generate a C++ API and implementation for accessing the source locations and method names for accessing them for a given AST node. This new API can be used to implement 'srcloc' output in clang-query: http://ce.steveire.com/z/m_kTIo The JSON file can also be used to generate bindings for other languages, such as Python and Javascript: https://steveire.wordpress.com/2019/04/30/the-future-of-ast-matching In this first version of this feature, only the accessors for Stmt classes are generated, not Decls, TypeLocs etc. Those can be added after this change is reviewed, as this change is mostly about infrastructure of these code generators. Also in this version, the platforms/cmake configurations are excluded as much as possible so that support can be added iteratively. Currently a break on any platform causes a revert of the entire feature. This way, the `OR WIN32` can be removed in a future commit and if it breaks the buildbots, only that commit gets reverted, making the entire process easier to manage. Differential Revision: https://reviews.llvm.org/D93164
-
Pavel Labath authored
The functionality is not posix specific. Also force the usage of the gdb-remote process plugin in the gdb platform class. This is not sufficient to make TestPlatformConnect pass on windows (it seems it suffers from module loading issues, unrelated to this test), but it at least makes it shut down correctly, so I change the skip to an xfail.
-
Chenguang Wang authored
Current ArgPromotion implementation does not copy it: https://godbolt.org/z/zzTKof Reviewed By: fhahn Differential Revision: https://reviews.llvm.org/D93927
-
Simonas Kazlauskas authored
-
Jan Kratochvil authored
D98289 was erroneously reporting `invalid range list offset 0x20110` instead of `invalid range list table index 0`. Differential Revision: https://reviews.llvm.org/D98589
-
Ricky Taylor authored
This fixes some issues with bit masking when emitting instructions (including one TODO). Differential Revision: https://reviews.llvm.org/D98527
-
Ricky Taylor authored
This makes M68k match other platforms in this regard. This was done as part of the AsmParser/Disassembler work since the entry functions of those modules usually reference `getTheXXXTarget()`. Differential Revision: https://reviews.llvm.org/D98517
-
Ricky Taylor authored
read_raw_stdin() was opening a file in binary mode, but Popen was being told to use text mode (universal_newlines). This is benign on Python 2 but an error on Python 3. Differential Revision: https://reviews.llvm.org/D98428
-
Nico Weber authored
This reverts commit 5123327e. d627a27d was reverted in e0f70a8a.
-
Nikita Popov authored
Breaks the build ... somehow: https://llvm-compile-time-tracker.com/show_error.php?commit=77f7d2be214a1de29d583c75739f563593991fc3 FAILED: tools/clang/include/clang/Tooling/NodeIntrospection.inc cd /root/llvm-compile-time-tracker/llvm-project-build/tools/clang/lib/Tooling && /usr/bin/cmake -E make_directory /root/llvm-compile-time-tracker/llvm-project-build/tools/clang/lib/Tooling/generated/ && /root/llvm-compile-time-tracker/llvm-project/clang/lib/Tooling/DumpTool/generate_cxx_src_locs.py --json-input-path /root/llvm-compile-time-tracker/llvm-project-build/ASTNodeAPI.json --output-file generated/NodeIntrospection.inc --empty-implementation 0 && /usr/bin/cmake -E copy_if_different /root/llvm-compile-time-tracker/llvm-project-build/tools/clang/lib/Tooling/generated/NodeIntrospection.inc /root/llvm-compile-time-tracker/llvm-project-build/tools/clang/include/clang/Tooling/NodeIntrospection.inc /bin/sh: 1: /root/llvm-compile-time-tracker/llvm-project/clang/lib/Tooling/DumpTool/generate_cxx_src_locs.py: not found This reverts commit cefe7111. This reverts commit f72f122f. This reverts commit 970c21e3. This reverts commit 77f7d2be.
-
Stephen Kelly authored
-
Nikita Popov authored
Shows a miscompile with FastISel.
-
Stephen Kelly authored
Wrap to 80 cols, introduce main() function and use argparse instead of optparse.
-
Stephen Kelly authored
-
David Green authored
-
Simonas Kazlauskas authored
This is an alternative to D98120. Herein, instead of deleting the transformation entirely, we check that the underlying objects are both the same and therefore this transformation wouldn't incur a provenance change, if applied. https://alive2.llvm.org/ce/z/SYF_yv Reviewed By: lebedev.ri Differential Revision: https://reviews.llvm.org/D98588
-
Matt Arsenault authored
This saves a little bit of padding.
-
Nico Weber authored
This only merges the no-op generator part for now.
-
David Green authored
This test was apparently disabled in 6fcd4e08, without any sign of how it was going to be reenabled. This patch rewrites the test to use update_cc_test_checks, with midend optimizations other that mem2reg disabled. The first attempt of this patch in 5ae949a9 failed on bots even though it worked locally. I've attempted to adjust the RUN lines and made the test AArch64/ARM specific. Differential Revision: https://reviews.llvm.org/D98510
-
Stephen Kelly authored
Generate a json file containing descriptions of AST classes and their public accessors which return SourceLocation or SourceRange. Use the JSON file to generate a C++ API and implementation for accessing the source locations and method names for accessing them for a given AST node. This new API can be used to implement 'srcloc' output in clang-query: http://ce.steveire.com/z/m_kTIo In this first version of this feature, only the accessors for Stmt classes are generated, not Decls, TypeLocs etc. Those can be added after this change is reviewed, as this change is mostly about infrastructure of these code generators. Differential Revision: https://reviews.llvm.org/D93164
-
Luo, Yuanke authored
The load/store instruction will be transformed to amx intrinsics in the pass of AMX type lowering. Prohibiting the pointer cast make that pass happy. Differential Revision: https://reviews.llvm.org/D98247
-
Saleem Abdulrasool authored
Adjust the Win64 calling convention for Swift to pass self in R13, which is traditionally a CSR. This makes the behaviour similar to the SysV CC for Swift as well. This should improve the argument passing on Windows, although it comes at a high cost of ABI incompatibility. Fortunately in this case, there is no guarantee of ABI stability, and so we can make this incompatible change.
-
Siva Chandra Reddy authored
-
Philip Reames authored
Change was reverted in commit 8d20f2c2 because it was causing an infinite loop. 9228f2f3 fixed the root issue in the code structure, this change just reapplies the original change w/adaptation to the new code structure.
-
- Mar 13, 2021
-
-
Philip Reames authored
This fixes the bug demonstrated by the test case in the commit message of 8d20f2c2 (which was a revert of cf82700a). The root issue was that we have two transforms which are inverses of each other. We use one for simple induction variables (where we can use the post-inc form), and the other for everything else. The problem was that the two transforms could disagree about whether something was an induction variable. The reverted commit made a change to one of the matcher routines which was used for one of the two transforms without updating the other matcher. However, it's worth noting the existing code w/o the reverted change also has cases where the decision could differ between the two paths. The fix is simply to consolidate the code such that two paths must agree by construction, and to add an assert to catch any potential future re-divergence. Triggering the infinite loop requires side stepping the SunkAddrs cache. The SunkAddrs cache has the effect of suppressing the iteration in the common case, but there are codepaths through CGP which restart iteration and clear this cache. Unfortunately, I have not been able to construct a standalone IR test case for this. The original test case is a c++ program which when compiled by clang demonstrates the infinite loop, but all of my attempts at extracting an IR test case runnable through opt/llc have failed to reproduce. (Including capturing the IR at point of the transform itself!) I have no idea what weird state clang is creating here. I also tried creating a test case by hand, but gave up after about an hour of trying to find the right combination to dance through multiple transforms to create the end result needed to trip the bug.
-
Arnamoy Bhattacharyya authored
[flang][OpenMP] Add support for getting parent context and clauses and modify the relevant sema checks to use the new functions. Differential Revision: https://reviews.llvm.org/D98580
-
Jez Ng authored
They were previously in SyntheticSections.h, but now there are a bunch of non-synthetic section names in the list. Also renamed `__functionStarts` to `__func_starts` for uniformity with other section names + keeps the name under 16 characters (in case we ever want to write it out as a real section). Reviewed By: #lld-macho, compnerd Differential Revision: https://reviews.llvm.org/D98586
-