summaryrefslogtreecommitdiffstats
path: root/llvm/utils
Commit message (Collapse)AuthorAgeFilesLines
* lit googletest.py: Don't raise StopIteration in generatorHans Wennborg2020-06-161-1/+1
| | | | | | | | | | The intention here seems to be to end the generator function, but with modern Python, raising StopIteration causes a runtime error (https://www.python.org/dev/peps/pep-0479/). Differential revision: https://reviews.llvm.org/D79169 (cherry picked from commit 88aad9b9f05702585eb823d0188996f4cf62070a)
* Bump version to 10.0.1Tom Stellard2020-04-133-4/+4
|
* Revert "Reland "[gn build] (manually) merge 68a235d07f9e70""Hans Wennborg2020-03-035-8/+12
| | | | | | | | | This reverts commit 94d4ca90040a5f55ee29f48043881437de56681e. I reverted 68a235d07f9e70 again in 916be8fd6a0a0feea4cefcbeb0c22c65848d7a2e. (cherry picked from commit 93c73d4834a96ac749dabb624e07f9a146186875)
* [gn build] Port a0f50d73163LLVM GN Syncbot2020-02-281-0/+1
| | | | (cherry picked from commit 4612e48d2fd91d99b4ea7136017bd72ab2946430)
* Fix DfaEmitter::visitDfaState() crash in MSVC x86 debug builds (PR44945)Hans Wennborg2020-02-252-5/+8
| | | | | | | No functionality change (intended), but this seems to make the code a bit clearer for the compiler and maybe for human readers too. (cherry picked from commit edae4be8e21c5deb9a8ffc24a8c17e70b878bf39)
* build_llvm_package.bat: Produce zip files in addition to the installersHans Wennborg2020-02-251-1/+12
| | | | | | | | | | Now that the Windows installer no longer does anything besides self-extract, maybe it would make sense to distribute the toolchain as a plain zip file in addition to the current installer. Differential revision: https://reviews.llvm.org/D74896 (cherry picked from commit 4486aa03c5f431ba33a1d1ac9991da912e3decd9)
* [windows] Add /Gw to compiler flagsNico Weber2020-02-201-0/+1
| | | | | | | | | | | | This is like -fdata-sections, and it's not part of /O2 by default for some reason. In the cmake build, reduces the size of clang.exe from 70,358,016 bytes to 69,982,720 bytes. clang-format.exe goes from 3,703,296 bytes to 3,331,072 bytes. Differential Revision: https://reviews.llvm.org/D74573 (cherry picked from commit 09153ab9d267a86d6e9bce18d5074617de5879a5)
* test-release.sh: Add MLIR to the projects listHans Wennborg2020-01-301-0/+8
| | | | (cherry picked from commit ef465d0ad2b98cae6fd6f6c450649f40e67fa24b)
* [llvm-locstats] Add the --draw-plot optionDjordje Todorovic2020-01-151-6/+52
| | | | | | | | When using the option, draw the histogram representing the debug location buckets. The resulting histogram will be saved in a png file. Differential Revision: https://reviews.llvm.org/D71869
* [llvm-locstats][NFC] Support OOP conceptDjordje Todorovic2020-01-151-92/+106
| | | | | | | | | | | | | | | Making these changes, the code becomes more robust and easier for adding the new features. -Introduce the LocationStats class representing the statistics -Add the pretty_print() method in the LocationStats class -Add additional '-' for the program options -Add the verify_program_inputs() function -Add the parse_locstats() function -Rename 'results' => 'opts' -Add more comments Differential Revision: https://reviews.llvm.org/D71868
* [gn build] Port 0dc6c249bffLLVM GN Syncbot2020-01-151-0/+1
|
* CMake: Make most target symbols hidden by defaultTom Stellard2020-01-141-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: For builds with LLVM_BUILD_LLVM_DYLIB=ON and BUILD_SHARED_LIBS=OFF this change makes all symbols in the target specific libraries hidden by default. A new macro called LLVM_EXTERNAL_VISIBILITY has been added to mark symbols in these libraries public, which is mainly needed for the definitions of the LLVMInitialize* functions. This patch reduces the number of public symbols in libLLVM.so by about 25%. This should improve load times for the dynamic library and also make abi checker tools, like abidiff require less memory when analyzing libLLVM.so One side-effect of this change is that for builds with LLVM_BUILD_LLVM_DYLIB=ON and LLVM_LINK_LLVM_DYLIB=ON some unittests that access symbols that are no longer public will need to be statically linked. Before and after public symbol counts (using gcc 8.2.1, ld.bfd 2.31.1): nm before/libLLVM-9svn.so | grep ' [A-Zuvw] ' | wc -l 36221 nm after/libLLVM-9svn.so | grep ' [A-Zuvw] ' | wc -l 26278 Reviewers: chandlerc, beanz, mgorny, rnk, hans Reviewed By: rnk, hans Subscribers: merge_guards_bot, luismarques, smeenai, ldionne, lenary, s.egerton, pzheng, sameer.abuasal, MaskRay, wuzish, echristo, Jim, hiraditya, michaelplatings, chapuni, jholewinski, arsenm, dschuff, jyknight, dylanmckay, sdardis, nemanjai, jvesely, javed.absar, sbc100, jgravelle-google, aheejin, kbarton, fedor.sergeev, asb, rbar, johnrusso, simoncook, apazos, sabuasal, niosHD, jrtc27, zzheng, edward-jones, mgrang, atanasyan, rogfer01, MartinMosbeck, brucehoult, the_o, PkmX, jocewei, kristina, jsji, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D54439
* [gn build] Port 36fcbb838c8LLVM GN Syncbot2020-01-141-0/+1
|
* [TableGen] Update editor modes for new keywords.Simon Tatham2020-01-144-3/+8
| | | | | | | | | | | | | | | | | | | | Summary: D71407 and D71474 added new keywords to the Tablegen language: `defvar`, `if`, `then` and `else`. This commit updates the various editor modes to highlight them appropriately. Some of the modes also didn't include `defset`, so I've added that too while I was there. Reviewers: MaskRay, lebedev.ri, plotfi Reviewed By: lebedev.ri Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72693
* [gn build] (manually) port b4a99a061f51Nico Weber2020-01-131-0/+1
|
* [X86][Disassembler] Merge X86DisassemblerDecoder.cpp into ↵Fangrui Song2020-01-121-1/+0
| | | | X86Disassembler.cpp and refactor
* [X86][Disassembler] Shrink X86GenDisassemblerTables.inc from 36M to 6.1MFangrui Song2020-01-111-46/+42
| | | | | | | | | In x86Disassembler{OneByte,TwoByte,...}Codes, "/* EmptyTable */" is very common. Omitting it saves lots of space. Also, there is no need to display a table entry in multiple lines. It is also common that the whole OpcodeDecision is { MODRM_ONEENTRY, 0}. Make use of zero-initialization.
* [AArch64] Add isAuthenticated predicate to MCInstDescVedant Kumar2020-01-104-0/+4
| | | | | | | | | | Add a predicate to MCInstDesc that allows tools to determine whether an instruction authenticates a pointer. This can be used by diagnostic tools to hint at pointer authentication failures. Differential Revision: https://reviews.llvm.org/D70329 rdar://55089604
* [gn build] Port 5e7beb0a414LLVM GN Syncbot2020-01-101-0/+1
|
* TableGen/GlobalISel: Fix pattern matching of immarg literalsMatt Arsenault2020-01-095-26/+65
| | | | | | | | | | | | | | | | | For arguments that are not expected to be materialized with G_CONSTANT, this was emitting predicates which could never match. It was first adding a meaningless LLT check, which would always fail due to the operand not being a register. Infer the cases where a literal should check for an immediate operand, instead of a register This avoids needing to invent a special way of representing timm literal values. Also handle immediate arguments in GIM_CheckLiteralInt. The comments stated it handled isImm() and isCImm(), but that wasn't really true. This unblocks work on the selection of all of the complicated AMDGPU intrinsics in future commits.
* TableGen/GlobalISel: Add way for SDNodeXForm to work on timmMatt Arsenault2020-01-091-4/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current implementation assumes there is an instruction associated with the transform, but this is not the case for timm/TargetConstant/immarg values. These transforms should directly operate on a specific MachineOperand in the source instruction. TableGen would assert if you attempted to define an equivalent GISDNodeXFormEquiv using timm when it failed to find the instruction matcher. Specially recognize SDNodeXForms on timm, and pass the operand index to the render function. Ideally this would be a separate render function type that looks like void renderFoo(MachineInstrBuilder, const MachineOperand&), but this proved to be somewhat mechanically painful. Add an optional operand index which will only be passed if the transform should only look at the one source operand. Theoretically it would also be possible to only ever pass the MachineOperand, and the existing renderers would check the parent. I think that would be somewhat ugly for the standard usage which may want to inspect other operands, and I also think MachineOperand should eventually not carry a pointer to the parent instruction. Use it in one sample pattern. This isn't a great example, since the transform exists to satisfy DAG type constraints. This could also be avoided by just changing the MachineInstr's arbitrary choice of operand type from i16 to i32. Other patterns have nontrivial uses, but this serves as the simplest example. One flaw this still has is if you try to use an SDNodeXForm defined for imm, but the source pattern uses timm, you still see the "Failed to lookup instruction" assert. However, there is now a way to avoid it.
* Add gdb pretty printer for MutableArrayRef, remove ConstArrayRef.Christian Sigg2020-01-091-1/+1
| | | | | | | | | | | | Reviewers: dblaikie Reviewed By: dblaikie Subscribers: merge_guards_bot, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72136
* TableGen/GlobalISel: Address fixmeMatt Arsenault2020-01-091-5/+9
| | | | Don't call computeAvailableFunctionFeatures for every instruction.
* [ms] [X86] Use "P" modifier on all branch-target operands in inline X86 ↵Eric Astor2020-01-092-41/+46
| | | | | | | | | | | | | | | | | | | assembly. Summary: Extend D71677 to apply to all branch-target operands, rather than special-casing call instructions. Also add a regression test for llvm.org/PR44272, since this finishes fixing it. Reviewers: thakis, rnk Reviewed By: thakis Subscribers: merge_guards_bot, hiraditya, cfe-commits, llvm-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D72417
* TableGen: Remove unused codeMatt Arsenault2020-01-091-6/+0
|
* TableGen/GlobalISel: Fix slightly wrong generated commentMatt Arsenault2020-01-091-1/+1
|
* [gn build] Port 346f6b54bd1LLVM GN Syncbot2020-01-081-0/+1
|
* [gn build] (manually) merge 1cf11a4c67a15Nico Weber2020-01-082-3/+18
|
* Fix warnings as errors that occur on sanitizer-x86_64-linuxDaniel Sanders2020-01-071-4/+4
|
* Remove extraneous semicolon.Bill Wendling2020-01-071-1/+1
|
* [gn build] Port 1d94fb21118LLVM GN Syncbot2020-01-071-0/+1
|
* [gicombiner] Add GIMatchTree and use it for the code generationDaniel Sanders2020-01-0711-8/+1769
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: GIMatchTree's job is to build a decision tree by zipping all the GIMatchDag's together. Each DAG is added to the tree builder as a leaf and partitioners are used to subdivide each node until there are no more partitioners to apply. At this point, the code generator is responsible for testing any untested predicates and following any unvisited traversals (there shouldn't be any of the latter as the getVRegDef partitioner handles them all). Note that the leaves don't always fit into partitions cleanly and the partitions may overlap as a result. This is resolved by cloning the leaf into every partition it belongs to. One example of this is a rule that can match one of N opcodes. The leaf for this rule would end up in N partitions when processed by the opcode partitioner. A similar example is the getVRegDef partitioner where having rules (add $a, $b), and (add ($a, $b), $c) will result in the former being in the partition for successfully following the vreg-def and failing to do so as it doesn't care which happens. Depends on D69151 Fixed the issues with the windows bots which were caused by stdout/stderr interleaving. Reviewers: bogner, volkan Reviewed By: volkan Subscribers: lkail, mgorny, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D69152
* [gn build] Port c69ae835d0eLLVM GN Syncbot2020-01-072-0/+2
|
* [MC] Add parameter `Address` to MCInstrPrinter::printInstructionFangrui Song2020-01-061-7/+8
| | | | | | | | Follow-up of D72172. Reviewed By: jhenderson, rnk Differential Revision: https://reviews.llvm.org/D72180
* TableGen/GlobalISel: Handle default operands that are usedMatt Arsenault2020-01-061-7/+37
| | | | | | | | | | Copy the logic from the existing handling in the DAG matcher emittter. This will enable some AMDGPU pattern cleanups without breaking GlobalISel tests, and eventually handle importing more patterns. The test is a bit annoying since the sections seem to randomly sort themselves if anything else is added in the future.
* Make check-llvm run 50% faster on macOS, 18% faster on Windows.Nico Weber2020-01-061-6/+30
| | | | | | | | | | | | | | | | | | | | While looking at cycle time graphs of some of my bots, I noticed that 327894859cc made check-llvm noticeably slower on macOS and Windows. As it turns out, the 5 substitutions added in that change were enough to cause lit to thrash the build-in cache in re.compile() (re.sub() is implemented as re.compile().sub()), and apparently applySubstitutions() is on the cricital path and slow when all regexes need to compile all the time. (See `_MAXCACHE = 512` in cpython/Lib/re.py) Supporting full regexes for lit substitutions seems a bit like overkill, but for now add a simple unbounded cache to recover the lost performance. No intended behavior change.
* [gn build] Port 350da402ef6LLVM GN Syncbot2020-01-061-0/+1
|
* [NFC] Fix trivial typos in commentsJames Henderson2020-01-063-5/+5
| | | | | | | | Reviewed By: jhenderson Differential Revision: https://reviews.llvm.org/D72143 Patch by Kazuaki Ishizaki.
* [gn build] Port 5d304d68dd5LLVM GN Syncbot2020-01-041-1/+0
|
* Revert "[gicombiner] Add GIMatchTree and use it for the code generation"Daniel Sanders2020-01-0311-1769/+8
| | | | | | | | | All the windows bots are failing match-tree.td and there's no obvious cause that I can see. It's not just the %p formatting problem. My best guess is that there's an ordering issue too but I'll need further information to figure that out. Revert while I'm investigating. This reverts commit 64f1bb5cd2c6d69af7c74ec68840029603560238 and 77d4b5f5feff663e70b347516cc4c77fa5cd2a20
* [gn build] Port 64f1bb5cd2cLLVM GN Syncbot2020-01-041-0/+1
|
* [gicombiner] Add GIMatchTree and use it for the code generationDaniel Sanders2020-01-0311-8/+1769
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: GIMatchTree's job is to build a decision tree by zipping all the GIMatchDag's together. Each DAG is added to the tree builder as a leaf and partitioners are used to subdivide each node until there are no more partitioners to apply. At this point, the code generator is responsible for testing any untested predicates and following any unvisited traversals (there shouldn't be any of the latter as the getVRegDef partitioner handles them all). Note that the leaves don't always fit into partitions cleanly and the partitions may overlap as a result. This is resolved by cloning the leaf into every partition it belongs to. One example of this is a rule that can match one of N opcodes. The leaf for this rule would end up in N partitions when processed by the opcode partitioner. A similar example is the getVRegDef partitioner where having rules (add $a, $b), and (add ($a, $b), $c) will result in the former being in the partition for successfully following the vreg-def and failing to do so as it doesn't care which happens. Depends on D69151 Reviewers: bogner, volkan Reviewed By: volkan Subscribers: lkail, mgorny, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D69152
* [globalisel] Fix another mismatch between %d and the RuleID typeDaniel Sanders2020-01-031-1/+1
|
* [gn build] Port 9861a8538c0LLVM GN Syncbot2020-01-031-0/+1
|
* [gn build] Port cf48101200eLLVM GN Syncbot2020-01-031-0/+1
|
* Reland "[gn build] (manually) merge 68a235d07f9e70"Nico Weber2020-01-025-12/+8
| | | | | | This reverts commit 70342641b3c064b1cdf90d16902b937e7a21ecf2. 68a235d relanded in abb00753069, so this relands the gn port of it.
* Make mangled_names.test and update_cc_test_checks.py work with Python 2.Nico Weber2020-01-021-7/+12
| | | | Differential Revision: https://reviews.llvm.org/D71565
* [gn build] (manually) merge 24ab9b537e61b3 yet more, to fix redef warningsNico Weber2020-01-021-0/+1
|
* update_test_checks: match CHECK-EMPTY lines for replacement.James Y Knight2020-01-021-1/+1
| | | | | | In a8a89c77ea3c16b45763fca6940bbfd3bef7884f, the script started adding CHECK-EMPTY lines, but the regex for which lines to replace was not updated.
* [gn build] (manually) merge 24ab9b537e61b3 moreNico Weber2020-01-023-0/+43
|
OpenPOWER on IntegriCloud