summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [lldb/Docs] Include how to generate the man pageJonas Devlieghere2020-01-031-0/+1
|
* [clang-tidy] fix linkage with clangSema for FixitHintUtils, undo previous ↵Jonas Toth2020-01-032-1/+1
| | | | wrong fix
* [mlir] Compilation fix: use LLVM_ATTRIBUTE_UNUSED following ↵Alexandre Ganea2020-01-031-6/+2
| | | | | | 6656e961c08393c3949412ef945ade0272b66fca Differential Revision: https://reviews.llvm.org/D72124
* [mlir] Fix indexed_accessor_range to properly forward the derived class.River Riddle2020-01-036-25/+70
| | | | | | | | Summary: This fixes the return value of helper methods on the base range class. Reviewed By: jpienaar Differential Revision: https://reviews.llvm.org/D72127
* GlobalISel: Add type argument to getRegBankFromRegClassMatt Arsenault2020-01-0313-30/+43
| | | | | | AMDGPU can't unambiguously go back from the selected instruction register class to the register bank without knowing if this was used in a boolean context.
* [bindings/go] Add Subprogram methodAyke van Laethem2020-01-031-0/+5
| | | | | | | This method allows getting the subprogram metadata object from a function value. Differential Revision: https://reviews.llvm.org/D71528
* [amdgpu] Skip non-instruction values in CF user tracing.Michael Liao2020-01-031-0/+2
| | | | | | | | | | | | | | | | Summary: - CF users won't be non-instruction values. Skip them to save the compilation time. It's especially true when there are multiple functions in that module, where, says, a constant may be used in most functions. The current CF user tracing adds significant overhead. Reviewers: alex-t, rampitec Subscribers: arsenm, kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72174
* [clang-tidy] quickfix: add -fno-delayed-template-parsing as default argument ↵Jonas Toth2020-01-031-0/+1
| | | | for runCheckOnCode unit-tests to unbreak windows
* [clang-tidy] fix broken linking for AddConstTest with adding clangSema as ↵Jonas Toth2020-01-031-0/+1
| | | | dependency (DeclSpec)
* [NFC][ORC] Fix typos and whitespaces in commentsStefan Gränitz2020-01-035-41/+41
|
* [gn build] Port 9861a8538c0LLVM GN Syncbot2020-01-031-0/+1
|
* [SystemZ] Don't allow CL option -mpacked-stack with -mbackchain.Jonas Paulsson2020-01-034-3/+19
| | | | | | | -mpacked-stack is currently not supported with -mbackchain, so this should result in a compilation error message instead of being silently ignored. Review: Ulrich Weigand
* AMDGPU: Add gfx9 run lines to a testcaseMatt Arsenault2020-01-031-5/+13
|
* AMDGPU/GlobalISel: Add new utils fileMatt Arsenault2020-01-034-33/+77
| | | | | | There are some things that are shareable between the legalizer, regbankselect, and the selector that don't have an obvious place to go.
* AMDGPU: Only allow regs for s_movrel_{b32|b64}Matt Arsenault2020-01-031-2/+13
| | | | | This would incorrectly allowing folding immediates. These currently aren't selectable, but will be from GlobalISel soon.
* [mlir] Enhance classof() checks in StructsGenLei Zhang2020-01-033-6/+34
| | | | | | | | | | | Previously we only check that each field is of the correct mlir::Attribute subclass. This commit enhances to also consider the attribute's types, by leveraging the constraints already encoded in TableGen attribute definitions. Reviewed By: rsuderman Differential Revision: https://reviews.llvm.org/D72162
* [mlir][Linalg] NFC - Post-commit format fixNicolas Vasilache2020-01-031-2/+3
|
* [mlir][Linalg] NFC - Hotfix GenericLoopNestBuilder compilation error on ↵Nicolas Vasilache2020-01-031-2/+7
| | | | | | | | | | | | older gcc (-fpermissive) This fixes the error: ``` mlir/include/mlir/Dialect/Linalg/Utils/Utils.h:72:3: error: from definition of 'template<class LoopTy> mlir::edsc::GenericLoopNestRangeBuilder<LoopTy>::GenericLoopNestRangeBuilder(llvm::ArrayRef<mlir::edsc::ValueHandle*>, llvm::ArrayRef<mlir::Value>)' [-fpermissive] GenericLoopNestRangeBuilder(ArrayRef<edsc::ValueHandle *> ivs, ``` This was tested independently on a Docker image with gcc-5 by jpienaar@
* [mlir][spirv] Fix ADDITIONAL_HEADER_DIRS for SPIR-V librariesLei Zhang2020-01-033-2/+5
| | | | | | | | SPIRV/ headers live under mlir/Dialect/. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D72141
* [DAGCombiner] fix miscompile in translating (X & undef) to shuffleSanjay Patel2020-01-032-3/+5
| | | | | See PR42982 for more context: https://bugs.llvm.org/show_bug.cgi?id=42982
* [LegalizeVectorOps] Pass the post-UpdateNodeOperands version of Op to ↵Craig Topper2020-01-031-11/+14
| | | | | | | | | | ExpandLoad/ExpandStore UpdateNodeOperands might CSE to another existing node. So we should make sure we're legalizing that node otherwise we might fail to hook up the operands properly. I've moved the result registration up to the caller to avoid having to pass both Result and Op into the functions where it might be confusing which is which. This address 2 other issues pointed out in D71861. Differential Revision: https://reviews.llvm.org/D72021
* [x86] add test for miscompile in XformToShuffleWithZero(); NFCSanjay Patel2020-01-031-0/+12
|
* [gn build] Port cf48101200eLLVM GN Syncbot2020-01-031-0/+1
|
* [X86] Improve for v2i32->v2f64 uint_to_fpCraig Topper2020-01-034-269/+140
| | | | | | | | | | | | | | This uses an alternative implementation of this conversion derived from our v2i32->v2f32 handling. We can zero extend the v2i32 to v2i64, or it with the bit representation of 2.0^52 which will give us 2.0^52 plus the 32-bit integer since double's mantissa is 52 bits. Then we just need to subtract 2.0^52 as a double and let the floating point unit normalize the remaining bits into a valid double. This is less instructions then our previous code, but does require a port 5 shuffle for the zero extend or unpack. Differential Revision: https://reviews.llvm.org/D71945
* [clang-tidy] implement utility-function to add 'const' to variablesJonas Toth2020-01-039-15/+1339
| | | | | | | | | | | | | | | | | | | | | | | Summary: This patch extends the already existing facility to add 'const' to variables to be more flexible and correct. The previous version did not consider pointers as value AND pointee. For future automatic introduction for const-correctness this shortcoming needs to be fixed. It always allows configuration where the 'const' token is inserted, either on the left side (if possible) or the right side. It adds many unit-tests to the utility-function that did not exist before, as the function was implicitly tested through clang-tidy checks. These tests were not changed, as the API is still compatible. Reviewers: aaron.ballman, hokein, alexfh, shuaiwang, lebedev.ri Reviewed By: aaron.ballman Subscribers: jdoerfert, mgorny, xazax.hun, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D54395
* [mlir][Linalg] NFC - Hotfix GenericLoopNestBuilder compilation error ↵Nicolas Vasilache2020-01-031-4/+6
| | | | | | | | | | (-fpermissive) This should fix the error: ``` mlir/include/mlir/Dialect/Linalg/Utils/Utils.h:72:3: error: from definition of 'template<class LoopTy> mlir::edsc::GenericLoopNestRangeBuilder<LoopTy>::GenericLoopNestRangeBuilder(llvm::ArrayRef<mlir::edsc::ValueHandle*>, llvm::ArrayRef<mlir::Value>)' [-fpermissive] GenericLoopNestRangeBuilder(ArrayRef<edsc::ValueHandle *> ivs, ```
* Move tail call disabling code to target independent codeReid Kleckner2020-01-0312-43/+54
| | | | | | | | | | | | | | | | | When the "disable-tail-calls" attribute was added, checks were added for it in various backends. Now this code has proliferated, and it is something the target is responsible for checking. Move that responsibility back to the ISels (fast, global, and SD). There's no major functionality change, except for targets that never implemented this check. This LLVM attribute was originally added in d9699bc7bdf0362173fcd256690f61a4d47429c2 (2015). Reviewers: echristo, MaskRay Differential Revision: https://reviews.llvm.org/D72118
* Remove outdated svn/git information from hacking pageAlexander Lanin2020-01-031-24/+2
| | | | | | | | | The patch files section is redundant to https://llvm.org/docs/GettingStarted.html. There is nothing clang specific here. We are talking about a monorepo after all. While it may seem nice to have one single clang page which explains everything, it's not: It doesn't cover the topics in sufficient depth, it's redundant to other pages and it's hard to keep it up to date as we see with the svn instructions.
* [NFC][InstCombine] '(Op1 & С) - Op1' -> '-(Op1 & ~C)' fold (PR44427)Roman Lebedev2020-01-033-10/+19
| | | | | | | | | | | | | | | | | | | This decreases use count of Op1, potentially allows us to further hoist said 'neg' later on, and results in marginally better X86 codegen. Name: (Op1 & С) - Op1 -> -(Op1 & ~C) %o = and i64 %Op1, C1 %r = sub i64 %o, %Op1 => %n = and i64 %Op1, ~C1 %r = sub i64 0, %n https://rise4fun.com/Alive/rwgA https://godbolt.org/z/R_RMfM https://bugs.llvm.org/show_bug.cgi?id=44427
* [NFC][InstCombine] '(Op1 & С) - Op1' pattern tests (PR44427)Roman Lebedev2020-01-031-0/+98
|
* [NFC][InstCombine] Autogenerate and2.ll checklinesRoman Lebedev2020-01-031-19/+19
|
* [mlir][linalg] Lower linalg to affine loopsAhmed Taei2020-01-034-2/+94
| | | | | | | | | | | | Reviewers: nicolasvasilache Reviewed By: nicolasvasilache Subscribers: mgester, lucyrfox, merge_guards_bot, AlexEichenberger, mravishankar, ftynse, mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, nicolasvasilache, arpith-jacob, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72094
* [mlir][Vector] NFC - Add documentation for the VectorOps dialect.Nicolas Vasilache2020-01-031-7/+486
|
* [DWARF] Don't assume optional always has a value.Jonas Devlieghere2020-01-031-1/+4
| | | | | | | | When getting the file name form the line table prologue we assume that a valid string form value can always be extracted as a string. If you look at the implementation of DWARFormValue this is not necessarily true. I hit this assertion from LLDB when I create a "dummy" DWARFContext that was missing the string section.
* [NFC][InstCombine] '(X & (- Y)) - X' -> '- (X & (Y - 1))' fold (PR44448)Roman Lebedev2020-01-032-12/+22
| | | | | | | | | | | | | | | | | | | | | Name: (X & (- Y)) - X -> - (X & (Y - 1)) (PR44448) %negy = sub i8 0, %y %unbiasedx = and i8 %negy, %x %r = sub i8 %unbiasedx, %x => %ymask = add i8 %y, -1 %xmasked = and i8 %ymask, %x %r = sub i8 0, %xmasked https://rise4fun.com/Alive/OIpla This decreases use count of %x, may allow us to later hoist said negation even further, and results in marginally nicer X86 codegen. See https://bugs.llvm.org/show_bug.cgi?id=44448 https://reviews.llvm.org/D71499
* [NFC][InstCombine] '(X & (- Y)) - X' pattern tests (PR44448)Roman Lebedev2020-01-031-0/+158
| | | | | As discussed in https://bugs.llvm.org/show_bug.cgi?id=44448, we can hoist negation out of the pattern.
* [AArch64][test] Merge arm64-$i.ll Linux tests into $i.llFangrui Song2020-01-039-1694/+64
| | | | | | Reviewed By: dmgreen Differential Revision: https://reviews.llvm.org/D72061
* [clangd] targetDecl() returns only NamedDecls.Sam McCall2020-01-036-48/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: While it's perfectly reasonable for non-named decls such as static_assert to resolve to themselves: - nothing else ever resolves to them - features based on references (hover, highlight, find refs etc) tend to be uninteresting where only trivial references are possible - returning NamedDecl is a more convenient API (we cast to it in many places) - this aligns closer to findExplicitReferences/explicitReferenceTargets This fixes a crash in explicitReferenceTargets: if the target is a non-named decl then there's an invalid unchecked cast to NamedDecl. In practice this means when hovering over e.g. a static_assert: - before ac3f9e4842, we would show a (boring) hover card - after ac3f9e4842, we would crash - after this patch, we will show nothing Reviewers: kadircet, ilya-biryukov Subscribers: MaskRay, jkorous, arphaman, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D72163
* [OPENMP]Fix crash on error message for declare reduction.Alexey Bataev2020-01-032-3/+4
| | | | | If the qualified reduction name is specified and not found, the compiler may crash because of not specified parameter.
* [clang-format/java] format multiple qualified annotations on one declaration ↵Nico Weber2020-01-032-1/+9
| | | | | | | | | | | | | | | | | | | | | better Before: class Foo { @CommandLineFlags .Add @Features.foo public void test() {} } Now: class Foo { @Features.foo @CommandLineFlags.Add public void test() { } } See also https://crbug.com/1034115
* [OpenMP] diagnose zero-length array section in the depend clauseKelvin Li2020-01-0316-20/+35
| | | | | | | The OpenMP specification disallows having zero-length array sections in the depend clause (OpenMP 5.0 2.17.11). Differential Revision: https://reviews.llvm.org/D71969
* [Attributor][FIX] Allow dead users of rewritten functionJohannes Doerfert2020-01-032-13/+70
| | | | | | | If we replace a function with a new one because we rewrite the signature, dead users may still refer to the old version. With this patch we reuse the code that deals with dead functions, which the old versions are, to avoid problems.
* [Attributor][NFC] Unify the way we delete dead functionsJohannes Doerfert2020-01-031-13/+14
|
* [Attributor][FIX] Don't crash on ptr2int/int2ptr instructionsJohannes Doerfert2020-01-032-1/+12
| | | | | An integer isn't allowed in getAlignmentForValue so we need to stop at a ptr2int instruction during exploration.
* [Attributor][FIX] Do not derive nonnull and dereferenceable w/o accessJohannes Doerfert2020-01-035-18/+23
| | | | | | | An inbounds GEP results in poison if the value is not "inbounds", not in UB. We accidentally derived nonnull and dereferenceable from these inbounds GEPs even in the absence of accesses that would make the poison to UB.
* [Attributor][FIX] Return CHANGED once a pessimistic fixpoint is reached.Johannes Doerfert2020-01-032-1/+51
|
* [Diagnostic] Fixed add ftabstop to -Wmisleading-indentationTyker2020-01-032-5/+121
| | | | | | | | | | | | | | | | | Summary: this allow much better support of codebases like the linux kernel that mix tabs and spaces. -ftabstop=//Width// allow specifying how large tabs are considered to be. Reviewers: xbolva00, aaron.ballman, rsmith Reviewed By: aaron.ballman Subscribers: mstorsjo, cfe-commits, jyknight, riccibruno, rsmith, nathanchance Tags: #clang Differential Revision: https://reviews.llvm.org/D71037
* AMDGPU/GlobalISel: Fix off by one in operand indexMatt Arsenault2020-01-034-120/+82
| | | | This should be looking at the RHS of the add for a constant.
* [DAGCombiner][X86][AArch64] Generalize `A-(A&B)`->`A&(~B)` fold (PR44448)Roman Lebedev2020-01-035-103/+138
| | | | | | | | | | | | | | | | | | | | | | | The fold 'A - (A & (B - 1))' -> 'A & (0 - B)' added in 8dab0a4a7d691f2704f1079538e0ef29548db159 is too specific. It should/can just be 'A - (A & B)' -> 'A & (~B)' Even if we don't manage to fold `~` into B, we have likely formed `ANDN` node. Also, this way there's less similar-but-duplicate folds. Name: X - (X & Y) -> X & (~Y) %o = and i32 %X, %Y %r = sub i32 %X, %o => %n = xor i32 %Y, -1 %r = and i32 %X, %n https://rise4fun.com/Alive/kOUl See https://bugs.llvm.org/show_bug.cgi?id=44448 https://reviews.llvm.org/D71499
* [NFC][X86][AArch64] Add 'A - (A & B)' pattern tests (PR44448)Roman Lebedev2020-01-032-0/+297
| | | | | | | | | | | | | | | | | | | The fold 'A - (A & (B - 1))' -> 'A & (0 - B)' added in 8dab0a4a7d691f2704f1079538e0ef29548db159 is too specific. It should just be 'A - (A & B)' -> 'A & (~B)' Name: X - (X & Y) -> X & (~Y) %o = and i32 %X, %Y %r = sub i32 %X, %o => %n = xor i32 %Y, -1 %r = and i32 %X, %n https://rise4fun.com/Alive/kOUl See https://bugs.llvm.org/show_bug.cgi?id=44448 https://reviews.llvm.org/D71499
OpenPOWER on IntegriCloud