summaryrefslogtreecommitdiffstats
path: root/llvm/utils
Commit message (Collapse)AuthorAgeFilesLines
...
* gn build: (manually, belatedly) merge r358832Nico Weber2019-12-161-0/+1
|
* gn build: (manually, belatedly) merge r371898Nico Weber2019-12-161-0/+1
|
* find_interesting_reviews.py: adapt to github monorepoKristof Beyls2019-12-161-2/+4
|
* gn build: Merge bbc9f6c2ef0LLVM GN Syncbot2019-12-151-0/+1
|
* gn build: (manually and belatedly) merge ed153ef044fdNico Weber2019-12-141-0/+1
|
* gn build: Merge 91dd67ef724Nico Weber2019-12-141-0/+1
|
* gn build: (manually) merge 6404bd236 and d505e57cc2Nico Weber2019-12-143-0/+25
|
* gn build: add deps I failed to add in b2508ce85c1Nico Weber2019-12-131-1/+5
|
* [lit] Small cleanups. NFCIJulian Lettner2019-12-137-53/+53
| | | | | Remove unnecessary (argument same as default), cleanup imports, use "pythonic" names for variables, and general formatting.
* [Legalizer] Refactoring out legalizeMachineFunctionRoman Tereshin2019-12-131-0/+1
| | | | | | | | and introducing new unittests/CodeGen/GlobalISel/LegalizerTest.cpp relying on it to unit test the entire legalizer algorithm (including the top-level main loop). See also https://reviews.llvm.org/D71448
* [RISCV] Move DebugLoc Copy into CompressInstEmitterSam Elliott2019-12-131-0/+1
| | | | | | | | | | | | | | | | | | | | | Summary: This copy ensures that debug location information is kept for compressed instructions. There are places where both compressInstruction and uncompressInstruction are called that were not doing this copy, discarding some debug info. This change merely moves the copy into the generated file, so you cannot forget to copy the location over when compressing or uncompressing. Reviewers: asb, luismarques Reviewed By: luismarques Subscribers: sameer.abuasal, aprantl, hiraditya, rbar, johnrusso, simoncook, apazos, sabuasal, niosHD, kito-cheng, shiva0217, jrtc27, MaskRay, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, rkruppe, PkmX, jocewei, psnobl, benna, Jim, s.egerton, pzheng, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D67493
* gn docs: remove obsolete reference to monorepoNico Weber2019-12-131-3/+1
|
* gn build: Merge 84728e65e95LLVM GN Syncbot2019-12-131-0/+1
|
* [llvm-dwarfdump][Statistics] Don't count coverage less than 1% as 0%Kristina Bessonova2019-12-131-1/+1
| | | | | | | | | | | | | | | | | | | | | Summary: This is a follow up for D70548. Currently, variables with debug info coverage between 0% and 1% are put into zero-bucket. D70548 changed the way statistics calculate a variable's coverage: we began to use enclosing scope rather than a possible variable life range. Thus more variables might be moved to zero-bucket despite they have some debug info coverage. The patch is to distinguish between a variable that has location info but it's significantly less than its enclosing scope and a variable that doesn't have it at all. Reviewers: djtodoro, aprantl, dblaikie, avl Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D71070
* [llvm-dwarfdump][Statistics] Change the coverage buckets representation. NFCKristina Bessonova2019-12-131-4/+4
| | | | | | | | | | | | | | | | Summary: This changes the representation of 'coverage buckets' in llvm-dwarfdump and llvm-locstats to one that makes more clear what the buckets contain. See some related details in D71070. Reviewers: djtodoro, aprantl, cmtice, jhenderson Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D71366
* [llvm-locstats] Avoid the locstats when no scope bytes coverage foundDjordje Todorovic2019-12-131-0/+4
| | | | | | | If the total number of PC range bytes in each variable's enclosing scope ('scope bytes total') is 0, we will have division by zero. Differential Revision: https://reviews.llvm.org/D71415
* gn build: Merge 526244b187dLLVM GN Syncbot2019-12-121-0/+1
|
* gn build: Merge 600d123c6ffLLVM GN Syncbot2019-12-121-0/+1
|
* gn build: (manually) merge 5d986953c8b917bacfaa1f800fc1e242559f76beNico Weber2019-12-111-7/+164
|
* [IR] Split out target specific intrinsic enums into separate headersReid Kleckner2019-12-111-11/+65
| | | | | | | | | | | | | | | | | | | | This has two main effects: - Optimizes debug info size by saving 221.86 MB of obj file size in a Windows optimized+debug build of 'all'. This is 3.03% of 7,332.7MB of object file size. - Incremental step towards decoupling target intrinsics. The enums are still compact, so adding and removing a single target-specific intrinsic will trigger a rebuild of all of LLVM. Assigning distinct target id spaces is potential future work. Part of PR34259 Reviewers: efriedma, echristo, MaskRay Reviewed By: echristo, MaskRay Differential Revision: https://reviews.llvm.org/D71320
* gn build: (manually) merge d23c61490cNico Weber2019-12-113-0/+17
|
* [lit] Improve formatting of error messages. NFCJulian Lettner2019-12-112-10/+10
|
* [TableGen] Remove unused target intrinsic generation logicReid Kleckner2019-12-117-75/+20
| | | | | | | | | | | | AMDGPU was the last in tree target to use this tablegen mode. I plan to split up the global intrinsic enum similar to the way that clang diagnostics are split up today. I don't plan to build on this mode. Reviewers: arsenm, echristo, efriedma Reviewed By: echristo Differential Revision: https://reviews.llvm.org/D71318
* gn build: Merge afb13afcf22LLVM GN Syncbot2019-12-111-1/+6
|
* gn build: (manually) merge eb3e81f43Nico Weber2019-12-104-0/+10
|
* [MC] Delete MCCodePadderFangrui Song2019-12-091-1/+0
| | | | | | | | | | | | | | | | | | | | | D34393 added MCCodePadder as an infrastructure for padding code with NOP instructions. It lacked tests and was not being worked on since then. Intel has now worked on an assembler patch to mitigate performance loss after applying microcode update for the Jump Conditional Code Erratum. https://www.intel.com/content/www/us/en/support/articles/000055650/processors.html This new patch shares similarity with MCCodePadder, but has a concrete use case in mind and is being actively developed. The infrastructure it introduces can potentially be used for general performance improvement via alignment. Delete the unused MCCodePadder so that people can develop the new feature from a clean state. Reviewed By: jyknight, skan Differential Revision: https://reviews.llvm.org/D71106
* scudo: Add a basic malloc/free benchmark.Peter Collingbourne2019-12-093-0/+36
| | | | Differential Revision: https://reviews.llvm.org/D71104
* gn build: Merge 6d5c273500aLLVM GN Syncbot2019-12-091-0/+1
|
* [llvm-dwarfdump][Statistics] Unify coverage statistic computationKristina Bessonova2019-12-081-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The patch removes OffsetToFirstDefinition in the 'scope bytes total' statistic computation. Thus it unifies the way the scope and the coverage buckets are computed. The rationals behind that are the following: 1. OffsetToFirstDefinition was used to calculate the variable's life range. However, there is no simple way to do it accurately, so the scope calculated this way might be misleading. See D69027 for more details on the subject. 2. Both 'scope bytes total' and coverage buckets seem to be intended to represent the same data in different ways. Otherwise, the statistics might be controversial and confusing. Note that the approach gives up a thorough evaluation of debug information completeness (i.e. coverage buckets by themselves doesn't tell how good the debug information is). Only changes in coverage over time make a 'physical' sense. Reviewers: djtodoro, aprantl, vsk, dblaikie, avl Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D70548
* gn build: Merge e60b36cf92eLLVM GN Syncbot2019-12-071-1/+1
|
* export.sh: Fetch sources from GitHub instead of SVNTom Stellard2019-12-061-11/+24
| | | | | | | | | | Reviewers: hansw, jdoerfert Subscribers: sylvestre.ledru, mgorny, hans, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D70460
* gn build: Change scudo's list of supported platforms to a whitelist.Peter Collingbourne2019-12-061-5/+1
| | | | | | | | Scudo only supports building for android/linux/fuchsia, so require target_os to be one of linux/fuchsia to do a stage2_unix scudo build. Android is already covered by the stage2_android* toolchains below. Differential Revision: https://reviews.llvm.org/D71131
* [MC] Rewrite tablegen for printInstrAlias to comiple faster, NFCReid Kleckner2019-12-061-95/+166
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before this change, the *InstPrinter.cpp files of each target where some of the slowest objects to compile in all of LLVM. See this snippet produced by ClangBuildAnalyzer: https://reviews.llvm.org/P8171$96 Search for "InstPrinter", and see that it shows up in a few places. Tablegen was emitting a large switch containing a sequence of operand checks, each of which created many conditions and many BBs. Register allocation and jump threading both did not scale well with such a large repetitive sequence of basic blocks. So, this change essentially turns those control flow structures into data. The previous structure looked like: switch (Opc) { case TGT::ADD: // check alias 1 if (MI->getOperandCount() == N && // check num opnds MI->getOperand(0).isReg() && // check opnd 0 ... MI->getOperand(1).isImm() && // check opnd 1 AsmString = "foo"; break; } // check alias 2 if (...) ... return false; The new structure looks like: OpToPatterns: Sorted table of opcodes mapping to pattern indices. \-> Patterns: List of patterns. Previous table points to subrange of patterns to match. \-> Conds: The if conditions above encoded as a kind and 32-bit value. See MCInstPrinter.cpp for the details of how the new data structures are interpreted. Here are some before and after metrics. Time to compile AArch64InstPrinter.cpp: 0m29.062s vs. 0m2.203s size of the obj: 3.9M vs. 676K size of clang.exe: 97M vs. 96M I have not benchmarked disassembly performance, but typically disassemblers are bottlenecked on IO and string processing, not alias matching, so I'm not sure it's interesting enough to be worth doing. Reviewers: RKSimon, andreadb, xbolva00, craig.topper Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D70650
* gn build: Unbreak mac build after 4066591Nico Weber2019-12-061-1/+5
|
* gn build: Merge 99768b243cdLLVM GN Syncbot2019-12-062-0/+2
|
* gn build: Merge 9e8c799e2b0LLVM GN Syncbot2019-12-062-1/+1
|
* gn build: Add support for building scudo and its unit tests.Peter Collingbourne2019-12-054-0/+191
| | | | Differential Revision: https://reviews.llvm.org/D71081
* gn build: Bump Android API level to 29, and NDK to r21.Peter Collingbourne2019-12-052-3/+3
| | | | | | | These are both necessary in order to use ELF TLS, which is needed by the scudo unit tests. Differential Revision: https://reviews.llvm.org/D71079
* gn build: Merge aeda128a96cLLVM GN Syncbot2019-12-061-0/+1
|
* gn build: Merge 6470497817eLLVM GN Syncbot2019-12-061-1/+0
|
* gn build: Merge fdf80e86a52LLVM GN Syncbot2019-12-051-0/+1
|
* Add a default copy constructor for -Wdeprecated-copy warnings.Eric Christopher2019-12-051-0/+2
|
* gn build: Merge 7f93cb62280LLVM GN Syncbot2019-12-051-0/+1
|
* gn build: Merge 27f12444575LLVM GN Syncbot2019-12-051-0/+1
|
* gn build: Merge 45ef055d4ffLLVM GN Syncbot2019-12-041-0/+1
|
* gn build: Merge 9f251eece46LLVM GN Syncbot2019-12-041-0/+1
|
* gn build: (manually) merge ad871e42958Nico Weber2019-12-031-0/+1
|
* Fix `sed -e s@FOO@%/S@` and similar when there's @'s in the working directoryDaniel Sanders2019-12-031-0/+14
| | | | | | | | | | | | | | | | | | | | | | Jenkins sometimes starts a new working directory by appending @2 (or incrementing the number if the @n suffix is already there). This causes several clang tests to fail as: s@INPUT_DIR@%/S/Inputs@g gets expanded to the invalid: s@INPUT_DIR@/path/to/workdir@2/Inputs@g ~~~~~~~~~~ where the part marked with ~'s is interpreted as the flags. These are invalid and the test fails. Previous fixes simply exchanged the @ character for another like | but that's just moving the problem. Address it by adding an expansion that escapes the @ character we're using as a delimiter as well as other magic characters in the replacement of sed's s@@@. There's still room for expansions to cause trouble though. One I ran into while testing this was that having a directory called foo@bar causes lots of `CHECK-NOT: foo` directives to match. There's also things like directories containing `\1`
* [UpdateTestChecks] Change shebang from python to python3Fangrui Song2019-12-035-6/+6
| | | | | | | | | | 'python' means Python 2 on some platforms while Python 3 on others. 'python3' is Python 3 only. Python 2.7 End of Life is set to January 1, 2020. Getting rid of Python 2 support reduces maintenance burden. Reviewed By: lebedev.ri Differential Revision: https://reviews.llvm.org/D70730
* [FileCheck] Given multiple -dump-input, prefer most verboseJoel E. Denny2019-12-031-7/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: `FILECHECK_OPTS` was implemented so that a test runner, such as a bot, can specify FileCheck debugging options, such as `-dump-input=fail`. However, some existing test suites have FileCheck calls that already specify `-dump-input=fail` or `-dump-input=always`. Without this patch, such tests fail under such a test runner because FileCheck doesn't accept multiple occurrences of `-dump-input`. Solution: This patch permits multiple occurrences of `-dump-input` by assigning precedence to its values in the following descending order: `help`, `always`, `fail`, and `never`. That is, any occurrence of `help` always obtains help, and otherwise the behavior is similar to `-v` vs. `-vv` in that the option specifying the greatest verbosity has precedence. Rationale: My justification for the new behavior is as follows. I have not experienced use cases where, either as a test runner or as a test author, I want to **limit** the permitted debugging verbosity (except as a test author in FileCheck's or lit's test suites where the FileCheck debugging output itself is under test, but the solution there is `env FILECHECK_OPTS=`, and I imagine we should use the same solution anywhere else this need might occur). Of course, as either a test runner or test author, it is useful to **increase** debugging verbosity. Reviewed By: probinson Differential Revision: https://reviews.llvm.org/D70784
OpenPOWER on IntegriCloud