summaryrefslogtreecommitdiffstats
path: root/llvm/utils
Commit message (Collapse)AuthorAgeFilesLines
* [X86] Merge the different Jcc instructions for each condition code into ↵Craig Topper2019-04-052-1/+10
| | | | | | | | | | | | | | | | | | | | | single instructions that store the condition code as an operand. Summary: This avoids needing an isel pattern for each condition code. And it removes translation switches for converting between Jcc instructions and condition codes. Now the printer, encoder and disassembler take care of converting the immediate. We use InstAliases to handle the assembly matching. But we print using the asm string in the instruction definition. The instruction itself is marked IsCodeGenOnly=1 to hide it from the assembly parser. Reviewers: spatel, lebedev.ri, courbet, gchatelet, RKSimon Reviewed By: RKSimon Subscribers: MatzeB, qcolombet, eraman, hiraditya, arphaman, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D60228 llvm-svn: 357802
* [X86] Merge the different SETcc instructions for each condition code into ↵Craig Topper2019-04-052-3/+18
| | | | | | | | | | | | | | | | | | | | | single instructions that store the condition code as an operand. Summary: This avoids needing an isel pattern for each condition code. And it removes translation switches for converting between SETcc instructions and condition codes. Now the printer, encoder and disassembler take care of converting the immediate. We use InstAliases to handle the assembly matching. But we print using the asm string in the instruction definition. The instruction itself is marked IsCodeGenOnly=1 to hide it from the assembly parser. Reviewers: andreadb, courbet, RKSimon, spatel, lebedev.ri Reviewed By: andreadb Subscribers: hiraditya, lebedev.ri, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D60138 llvm-svn: 357801
* [X86] Merge the different CMOV instructions for each condition code into ↵Craig Topper2019-04-052-5/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | single instructions that store the condition code as an immediate. Summary: Reorder the condition code enum to match their encodings. Move it to MC layer so it can be used by the scheduler models. This avoids needing an isel pattern for each condition code. And it removes translation switches for converting between CMOV instructions and condition codes. Now the printer, encoder and disassembler take care of converting the immediate. We use InstAliases to handle the assembly matching. But we print using the asm string in the instruction definition. The instruction itself is marked IsCodeGenOnly=1 to hide it from the assembly parser. This does complicate the scheduler models a little since we can't assign the A and BE instructions to a separate class now. I plan to make similar changes for SETcc and Jcc. Reviewers: RKSimon, spatel, lebedev.ri, andreadb, courbet Reviewed By: RKSimon Subscribers: gchatelet, hiraditya, kristina, lebedev.ri, jdoerfert, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D60041 llvm-svn: 357800
* [gn] Rebase paths in symlink_or_copy against root_build_dirPetr Hosek2019-04-051-2/+2
| | | | | | | | | | | We should be always rebasing paths against root_build_dir which is the directory where scripts are run from, not root_out_dir which is the current toolchain directory. The latter can result in invalid paths when the action is being used from a non-default toolchain. Differential Revision: https://reviews.llvm.org/D60330 llvm-svn: 357798
* [gn] Make -no-exceptions flag a configPetr Hosek2019-04-052-1/+5
| | | | | | | | | This allows it to be disabled for targets that need exceptions like libunwind, libc++abi and libc++. Differential Revision: https://reviews.llvm.org/D60328 llvm-svn: 357797
* lit: make rm python 3 friendly (NFC)Saleem Abdulrasool2019-04-052-6/+8
| | | | | | Add some alterations for python 3 compatibility. llvm-svn: 357789
* gn build: Merge 357768 and 357770Nico Weber2019-04-052-0/+4
| | | | llvm-svn: 357783
* gn build: Merge r357719Nico Weber2019-04-051-2/+2
| | | | llvm-svn: 357781
* lit: support long paths on WindowsSaleem Abdulrasool2019-04-052-9/+64
| | | | | | | | Use ctypes to call into SHFileOperationW with the extended NT path to allow us to remove paths which exceed 261 characters on Windows. This functionality is exercised by swift's test suite. llvm-svn: 357778
* gn build: Merge r357663Nico Weber2019-04-043-0/+3
| | | | llvm-svn: 357666
* [gn] Use "$link /lib" for archives instead of lib.exeReid Kleckner2019-04-041-1/+1
| | | | | | | | | | | | | | | | Summary: This avoids the need to talk about lib.exe or llvm-lib.exe and it does the right thing with LLD. Reviewers: thakis Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D60155 llvm-svn: 357660
* gn build: Add build file for dexpNico Weber2019-04-032-2/+14
| | | | | | | | | None of check-clang-tools's tests run this, but the CMake check-clang-tools depends on the binary, so add it for consistency. Differential Revision: https://reviews.llvm.org/D60222 llvm-svn: 357624
* gn build: Add build files for clangd xpc framework codeNico Weber2019-04-035-2/+207
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a bit of a larger change since this is the first (and as far as I can tell only) place where the LLVM build produces macOS framework bundles. GN has some built-in support for this, so use that. `gn help create_bundle` has a terse description (but it's a bit outdated: `deps` must be `public_deps` and the conditionals in the example in the help aren't quite right on non-iOS). We need a new 'copy_bundle_data' tool, and since we copy the clangd.xpc bundle as bundle_data into ClangdXPC.framework it needs to be able to handle directories in addition to files. GN also insists we have a compile_xcassets tool even though it's not used. I just made that run `false`. Despite GN's support for bundles, we still need to manually create the expected symlink structure in the .framework bundle. Since this code never runs on Windows, it's safe to create the symlinks before the symlink targets exist, so we can just make the bundle depend on the steps that create the symlinks. For this to work, change the symlink script to create the symlink's containing directory if it doesn't yet exist. I locally verified that CMake and GN build create the same bundle structure. (I noticed that both builds set LC_ID_DYLIB to the pre-copy libClangdXPCLib.dylib name, but that seems to not cause any issues and it happens in the CMake build too.) (Also add an error message to clangd-xpc-test-client for when loading the dylib fails – this was useful while locally debugging this.) Differential Revision: https://reviews.llvm.org/D60130 llvm-svn: 357574
* [TableGen] Properly calculate the minimum size needed or ConvertFn in ↵Craig Topper2019-04-021-7/+11
| | | | | | | | | | GenAsmmatcher.inc files We were using the number of Matchables rather than the number of rows in the converter table. This only matters for a few of the targets where the number of matchables is more than 255, but the number of converters is less than 255. Many of the targets have more than 256 converters. So already required a uint16_t. llvm-svn: 357527
* [FileCheck] Fix FileCheck.cpp compilation on SolarisRainer Orth2019-04-021-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Both LLVM 8.0.0 and current trunk fail to compile on Solaris with GCC 8.1.0: /vol/llvm/src/llvm/dist/utils/FileCheck/FileCheck.cpp: In function ‘void DumpAnnotatedInput(llvm::raw_ostream&, const llvm::FileCheckRequest&, llvm::StringRef, std::vector<InputAnnotation>&, unsigned int)’: /vol/llvm/src/llvm/dist/utils/FileCheck/FileCheck.cpp:408:41: error: call of overloaded ‘log10(unsigned int&)’ is ambiguous unsigned LineNoWidth = log10(LineCount) + 1; ^ In file included from /vol/gcc-8/lib/gcc/i386-pc-solaris2.11/8.1.0/include-fixed/math.h:24, from /vol/gcc-8/include/c++/8.1.0/cmath:45, from /vol/llvm/src/llvm/dist/include/llvm-c/DataTypes.h:28, from /vol/llvm/src/llvm/dist/include/llvm/Support/DataTypes.h:16, from /vol/llvm/src/llvm/dist/include/llvm/ADT/Hashing.h:47, from /vol/llvm/src/llvm/dist/include/llvm/ADT/ArrayRef.h:12, from /vol/llvm/src/llvm/dist/include/llvm/Support/CommandLine.h:22, from /vol/llvm/src/llvm/dist/utils/FileCheck/FileCheck.cpp:18: /vol/gcc-8/lib/gcc/i386-pc-solaris2.11/8.1.0/include-fixed/iso/math_iso.h:209:21: note: candidate: ‘long double std::log10(long double)’ inline long double log10(long double __X) { return __log10l(__X); } ^~~~~ /vol/gcc-8/lib/gcc/i386-pc-solaris2.11/8.1.0/include-fixed/iso/math_iso.h:170:15: note: candidate: ‘float std::log10(float)’ inline float log10(float __X) { return __log10f(__X); } ^~~~~ /vol/gcc-8/lib/gcc/i386-pc-solaris2.11/8.1.0/include-fixed/iso/math_iso.h:70:15: note: candidate: ‘double std::log10(double)’ extern double log10 __P((double)); ^~~~~ Fixed by using std::log10 instead, which allowed the compilation on i386-pc-solaris2.11 and sparc-sun-solaris2.11 to continue. Differential Revision: https://reviews.llvm.org/D60043 llvm-svn: 357509
* gn build: Merge r357469Nico Weber2019-04-021-0/+1
| | | | llvm-svn: 357477
* gn build: Add build files for non-framework xpc clangd bitsNico Weber2019-04-026-12/+58
| | | | | | Differential Revision: https://reviews.llvm.org/D60124 llvm-svn: 357476
* gn build: Merge r357383Nico Weber2019-04-011-0/+1
| | | | llvm-svn: 357398
* gn build: Add build files for most clang-tools-extra unit testsNico Weber2019-03-3113-2/+287
| | | | | | Differential Revision: https://reviews.llvm.org/D60038 llvm-svn: 357369
* fix typo: "\t" => " "Liang Zou2019-03-311-1/+1
| | | | | | | | | | | | | | Reviewers: llvm.org, Jim Reviewed By: Jim Subscribers: arsenm, jvesely, nhaehnle, rupprecht, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D59983 llvm-svn: 357365
* gn build: Merge r357340Nico Weber2019-03-311-0/+1
| | | | llvm-svn: 357358
* gn build: Merge r357326Nico Weber2019-03-312-1/+1
| | | | llvm-svn: 357357
* gn build: Merge r357248Nico Weber2019-03-291-0/+1
| | | | llvm-svn: 357261
* gn build: Merge r357259Nico Weber2019-03-292-1/+2
| | | | llvm-svn: 357260
* gn build: Add check-clang-tools to run clang-tools-extra lit testsNico Weber2019-03-295-12/+151
| | | | | | | | | | | Only runs the clang-tools-extra lit tests; not yet the unit tests. Add a build file for clangd-indexer too, since it's needed for the tests. Differential Revision: https://reviews.llvm.org/D59955 llvm-svn: 357232
* [WebAssembly] Merge used feature sets, update atomics linkage policyThomas Lively2019-03-291-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: It does not currently make sense to use WebAssembly features in some functions but not others, so this CL adds an IR pass that takes the union of all used feature sets and applies it to each function in the module. This allows us to prevent atomics from being lowered away if some function has opted in to using them. When atomics is not enabled anywhere, we detect whether there exists any atomic operations or thread local storage that would be stripped and disallow linking with objects that contain atomics if and only if atomics or tls are stripped. When atomics is enabled, mark it as used but do not require it of other objects in the link. These changes allow libraries that do not use atomics to be built once and linked into both single-threaded and multithreaded binaries. Reviewers: aheejin, sbc100, dschuff Subscribers: jgravelle-google, hiraditya, sunfish, jfb, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D59625 llvm-svn: 357226
* Update lit config for ld.lld command to match "ld\.lld" instead of trying to ↵Rumeet Dhindsa2019-03-281-2/+2
| | | | | | | | match respective regex. (It was able to work with ld-lld and ld1lld as well) Differential Revision: https://reviews.llvm.org/D59962 llvm-svn: 357218
* gn build: Add some build files for clangdNico Weber2019-03-286-0/+179
| | | | | | | | | | | | | | Enough to build the clangd binaries, but this is still missing build files for: - fuzzer - indexer - index/dex/dexp - benchmarks - xpc Differential Revision: https://reviews.llvm.org/D59899 llvm-svn: 357182
* Add "git llvm revert" and "git llvm svn-lookup" subcommandsJordan Rupprecht2019-03-281-3/+117
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The current git-svnrevert script only works with git-svn repos (e.g. using "git svn find-rev" to find the commit to revert). This adds a similar implementation that works with the llvm git command handler. Usage: ``` // Revert by svn id $ git llvm revert r123456 // See what commands would be run instead of actually reverting $ git llvm revert -n r123456 <full git revert + git commit commands> // Git commit hash also fine $ git llvm revert abc123456 // For convenience, the git->svn method can be used directly: $ git llvm svn-lookup abc123456 r123456 // Push revert upstream (drop the -n when ready) $ git llvm push -n ``` Regardless of how the command is invoked (with a svn revision or git hash), the message is: ``` Revert [LibFoo] Change Foo implementation This reverts r123456 (git commit abc123) ``` Reviewers: jyknight, mehdi_amini, jlebar Reviewed By: jlebar Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D59837 llvm-svn: 357180
* gn build: Merge r357047Nico Weber2019-03-271-0/+1
| | | | llvm-svn: 357071
* gn build: Add build files for clang-include-fixer and find-all-symbolsNico Weber2019-03-275-0/+86
| | | | | | Differential Revision: https://reviews.llvm.org/D59838 llvm-svn: 357042
* gn build: Format all build filesNico Weber2019-03-264-7/+7
| | | | | | Re-ran `git ls-files '*.gn' '*.gni' | xargs llvm/utils/gn/gn.py format`. llvm-svn: 357021
* gn build: Merge r356929 (effectively relands r353518, reverted in r353621)Nico Weber2019-03-265-6/+7
| | | | llvm-svn: 357019
* merge-request.sh: Update 8.0 metabug for 8.0.1Tom Stellard2019-03-251-1/+1
| | | | llvm-svn: 356924
* [clang-tidy] Separate the check-facing interfaceAlexander Kornienko2019-03-251-0/+1
| | | | | | | | | | | | | | | | | | | Summary: Move ClangTidyCheck to a separate header/.cpp Switch checks to #include "ClangTidyCheck.h" Mention ClangTidyCheck.h in the docs Reviewers: hokein, gribozavr, aaron.ballman Reviewed By: hokein Subscribers: mgorny, javed.absar, xazax.hun, arphaman, jdoerfert, llvm-commits, cfe-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D59714 llvm-svn: 356890
* gn build: Clean up README.rst a bitNico Weber2019-03-251-37/+34
| | | | | | | | | | | - Make introduction a bit shorter - Add a `git clone` step to Quick start - Put command to run first in each of the Quick start steps - Use ``code`` instead of `label` throughout; this is .rst not .md Differential Revision: https://reviews.llvm.org/D59600 llvm-svn: 356885
* gn build: Let get.py keep zip file in memory instead of using a temp fileNico Weber2019-03-251-12/+5
| | | | | | | | | The zip is small, and it's a bit less code this way. No intended behavior change. Differential Revision: https://reviews.llvm.org/D59677 llvm-svn: 356884
* gn build: Merge r356820Nico Weber2019-03-232-0/+9
| | | | llvm-svn: 356846
* gn build: Add build files for modularize and pp-traceNico Weber2019-03-233-0/+39
| | | | | | Differential Revision: https://reviews.llvm.org/D59701 llvm-svn: 356845
* [gn] Add clang-tools-extra/clang-tidy/tool/BUILD.gnVitaly Buka2019-03-231-0/+18
| | | | llvm-svn: 356828
* [gn] Add clang-tools-extra/clang-tidy/tool/BUILD.gnVitaly Buka2019-03-231-0/+1
| | | | llvm-svn: 356827
* Make clang-move use same file naming convention as other toolsNico Weber2019-03-222-2/+2
| | | | | | | | | | | | In all the other clang-foo tools, the main library file is called Foo.cpp and the file in the tool/ folder is called ClangFoo.cpp. Do this for clang-move too. No intended behavior change. Differential Revision: https://reviews.llvm.org/D59700 llvm-svn: 356780
* gn build: Merge r356750Nico Weber2019-03-221-0/+1
| | | | llvm-svn: 356772
* gn build: Merge r356570Nico Weber2019-03-221-0/+1
| | | | llvm-svn: 356771
* gn build: Merge r356662Nico Weber2019-03-221-0/+1
| | | | llvm-svn: 356770
* gn build: Merge r356692Nico Weber2019-03-221-0/+1
| | | | llvm-svn: 356769
* gn build: Merge r356753Nico Weber2019-03-223-0/+5
| | | | llvm-svn: 356767
* gn build: Merge r356652 (and follow-up r56655)Nico Weber2019-03-223-0/+5
| | | | llvm-svn: 356766
* gn build: Merge r356729Nico Weber2019-03-221-0/+1
| | | | llvm-svn: 356765
* Remove HAVE_REALPATH from config.hNico Weber2019-03-201-2/+0
| | | | | | | | | Its last use was removed in r352916. No behavior change. Differential Revision: https://reviews.llvm.org/D59601 llvm-svn: 356579
OpenPOWER on IntegriCloud