| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Created using spr 1.3.4
|
|
|
|
| |
Created using spr 1.3.4
|
|\
| |
| |
| | |
Created using spr 1.3.4
|
| |
| |
| |
| |
| |
| | |
Created using spr 1.3.4
[skip ci]
|
|\|
| |
| |
| | |
Created using spr 1.3.4
|
|/
|
|
|
|
| |
Created using spr 1.3.4
[skip ci]
|
| |
|
|
|
|
|
|
|
| |
/llvm-project/clang/lib/CodeGen/CGObjCGNU.cpp:3674:15: error: variable 'selStructPtrTy' set but not used [-Werror,-Wunused-but-set-variable]
llvm::Type *selStructPtrTy = SelectorTy;
^
1 error generated.
|
|
|
|
|
|
|
|
| |
* Replace all existing uses of ConstantAggregateBuilderBase::addBitCast,
as they involve a no-op ptr-to-ptr bitcast
* Remove method ConstantAggregateBuilderBase::addBitCast
Opaque ptr cleanup effort (NFC)
|
|
|
|
|
|
|
|
|
|
| |
This patch extends findDbgValue and friends to optionally fill out a vector
of DPValue pointers, containing DPValues that refer to the sought Value.
This will allow us to incrementally add instrumentation to other
optimisation passes one-at-a-time, while un-instrumented passes will not
(yet) update DPValues.
Unit tests to check this behaves in the same way as dbg.values.
|
|
|
|
| |
IRInterfaces.cpp (NFC)
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
IRAttributes.cpp (NFC)
|
|
|
|
|
|
|
| |
Replace calls to `ConstantAggregateBuilderBase::addBitCast` that involve a
no-op ptr-to-ptr bitcast.
Opaque ptr cleanup effort (NFC)
|
|
|
|
|
|
| |
pool entries for smaller vector constant data"
Investigating reports of this causing infinite loops
|
|
|
|
| |
ShrinkDemandedOp checks for both isTruncateFree AND isZExtFree but extends with ANY_EXTEND.
|
|
|
|
|
|
|
|
| |
VPReductionRecipe may be executed for scalar VFs. Make sure to access
part 0 of the condition, as it could be an active-lane-mask, which is a
vector <1 x i1>
Fixes https://github.com/llvm/llvm-project/issues/72720.
|
|
|
|
| |
Address post-commit comment to retain comment.
|
| |
|
| |
|
|
|
|
|
| |
Currently, when changes are made to the tablegen files that build the
docs, the docs build is not tested. This should rarely cause breakages,
but it's cheap to test and there isn't a major reason not to.
|
| |
|
|
|
|
|
|
|
| |
Method CGObjCGNUstep2::EnforceType is called from 2 call-sites to perform
bitcasts which are no-ops given that opaque pointers are enabled in LLVM.
Remove the method. Opaque ptr cleanup effort (NFC).
|
| |
|
| |
|
|
|
|
|
| |
Add -rv32 -rv64 as suffix to test name. First step towards trying
to merge the content of these tests.
|
|
|
|
|
|
|
| |
There's already a Contents field in the MCEncodedFragmentWithFixups
base class. The Contents field in MCLEBFragment is private and there
is no accessor for it. It is initialized in the constructor, but that
should probably initialize the base class version.
|
|
|
|
|
|
|
|
|
|
|
| |
(#68519)
When performing constant folding on the affineApplyOp, there is a
division of 0 in the affine map.
[related issue](https://github.com/llvm/llvm-project/issues/64622)
---------
Co-authored-by: Javier Setoain <jsetoain@users.noreply.github.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a follow-up to #68981, and fix for #72630, #72447.
We may end up in SelectionDAG::salvageDebugInfo() with indirect debug
values, and attempting to salvage ADD nodes with non-constant RHS would
lead us to try to turn those indirect debug values variadic, which is
not allowed.
This triggered the following assert in the SDDbgValue constructor:
Assertion `!(IsVariadic && IsIndirect)' failed.
This also adds a lit test for salvaging when having an indirect debug
value and constant RHS, as there seems like there was no such lit test.
However, I am not sure if the use of the stack_value operation is
correct in that case (which is existing behavior before #68981), but
that at least documents the current behavior.
|
|
|
|
|
|
| |
Enable Type Units with DWARF5 accelerator tables for monolithic DWARF.
Implementation relies on linker to tombstone offset in LocalTU list to
-1 when
it deduplciates type units using COMDAT.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Improves the accuracy of `readability-identifier-naming` for cases
`Camel_Snake_Case` and `camel_Snake_Back`. Prior to this commit, these
cases matched identifiers with **only** a leading upper case letter or
leading lower case letter respectively. Now, uppercase letters can only
appear at the start of an identifier or directly following an
underscore.
---
Currently, the regex for `Camel_Snake_Case` matches any identifier that
starts with a capital letter:
```
^[A-Z]([a-z0-9]*(_[A-Z])?)*
^^^^^^^^^-- underscore + capital letter after the first capital is optional
```
This means that `Camel_Snake_Case` matches other cases - in particular
`CamelCase` and `Leading_upper_snake_case` - which causes clang-tidy to
sometimes not flag incorrect casing. It also matches `UPPER_CASE`, but I
think it's reasonable to consider this a subset of `Camel_Snake_Case`
since some users may prefer e.g. `XML_Parser` to `Xml_Parser`. It's
really easy to accidentally type an identifier that clang-tidy doesn't
catch; all you have to do is omit an underscore or forget to capitalize
a letter. The same problem also applies to `camel_Snake_Back` except
that any identifier starting with a lower case letter matches, so I went
ahead and adjusted its regex too. Fixing it also uncovered a minor error
in an existing test.
|
|
|
|
|
|
|
| |
visitJumpTable is called on FinishBasicBlock. At that time, getCurSDLoc
will always return SDLoc without DebugLoc since CurInst was set to
nullptr after visiting each instruction.
This patch passes SDLoc to buildJumpTable when visiting SwitchInst so
that visitJumpTable can use it later.
|
|
|
|
| |
Opaque ptr cleanup effort (NFC).
|
|
|
|
|
|
| |
CreatePointerBitCastOrAddrSpaceCast (NFC)
Opaque ptr cleanup effort (NFC)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Imagine a loop of the form:
```
preheader:
%r = def
header:
bcc latch, inner
inner1:
..
inner2:
b latch
latch:
%r = subs %r
bcc header
```
It can be possible for code to spend a decent amount of time in the
header<->latch loop, not going into the inner part of the loop as much.
The greedy register allocator can prefer to spill _around_ %r though,
adding spills around the subs in the loop, which can be very detrimental
for performance. (The case I am looking at is actually a very deeply
nested set of loops that repeat the header<->latch pattern at multiple
different levels).
The greedy RA will apply a preference to spill to the IV, as it is live
through the header block. This patch attempts to add a heuristic to
prevent that in this case for variables that look like IVs, in a similar
regard to the extra spill weight that gets added to variables that look
like IVs, that are expensive to spill. That will mean spills are more
likely to be pushed into the inner blocks, where they are less likely to
be executed and not as expensive as spills around the IV.
This gives a 8% speedup in the exchange benchmark from spec2017 when
compiled with flang-new, whilst importantly stabilising the scores to be
less chaotic to other changes. Running ctmark showed no difference in
the compile time. I've tried to run a range of benchmarking for
performance, most of which were relatively flat not showing many large
differences. One matrix multiply case improved 21.3% due to removing a
cascading chains of spills, and some other knock-on effects happen which
usually cause small differences in the scores.
|
|
|
|
|
|
|
|
|
|
| |
Currently, when the code format action fails, it leaves no log of the
diff in the output within the action itself. This has caused confusion
for some users of the action, especially when the comment becomes buried
in a 100+ comment review and someone isn't super familiar with the inner
workings of the CI. This patch prints the diff produced by the code
formatter to stdout so that it is viewable by clicking on the failed
action. This should have very little cost and make things slightly less
confusing for those that run into this situation.
|
|
|
|
|
| |
Also change over to using group names instead of specific runner names.
This will prevent future downtime.
|
|
|
|
|
|
|
| |
Alive2: https://alive2.llvm.org/ce/z/82Wr3q
Related patch:
https://github.com/llvm/llvm-project/commit/2dd52b4527667837cc525aa48435ab5cbfa30a0b
|
|
|
|
|
|
| |
Optimization reduces the range for switches whose cases are positive powers
of two by replacing each case with count_trailing_zero(case).
Resolves #70756
|
|
|
|
|
|
|
|
| |
placed in an output section
This ports https://reviews.llvm.org/D40652 (--emit-relocs) to -r and
matches GNU ld.
Close #67910
|
|
|
|
|
| |
Reverts llvm/llvm-project#72712
This causes timeouts on the bots.
|
| |
|
|
|
|
|
| |
(#70272)
Added tests for evaluating changes to loop interleaving count computation and for removing loop interleaving threshold in subsequent patches.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Arm64 use multiple registers (varg slots) to pass arrays.
Reviewers: kstoimenov, thurstond
Reviewed By: thurstond
Pull Request: https://github.com/llvm/llvm-project/pull/72728
|
| |
|