|
Revision tags: llvmorg-14.0.0-rc1 |
|
| #
cdc0573f |
| 07-Feb-2022 |
Nikita Popov <[email protected]> |
[MatrixBuilder] Remove unnecessary IRBuilder template (NFC)
IRBuilderBase exists specifically to avoid the need for this.
|
|
Revision tags: llvmorg-15-init |
|
| #
f1712383 |
| 27-Jan-2022 |
Arthur Eubanks <[email protected]> |
[NFC][Clang][OpaquePtr] Move away from deprecated Address constructor in CreateTempAlloca()
Specify the Address element type, which is the bitcast destination type. (the whole bitcast won't be neede
[NFC][Clang][OpaquePtr] Move away from deprecated Address constructor in CreateTempAlloca()
Specify the Address element type, which is the bitcast destination type. (the whole bitcast won't be needed after opaque pointers)
show more ...
|
| #
f15014ff |
| 26-Jan-2022 |
Benjamin Kramer <[email protected]> |
Revert "Rename llvm::array_lengthof into llvm::size to match std::size from C++17"
This reverts commit ef8206320769ad31422a803a0d6de6077fd231d2.
- It conflicts with the existing llvm::size in STLEx
Revert "Rename llvm::array_lengthof into llvm::size to match std::size from C++17"
This reverts commit ef8206320769ad31422a803a0d6de6077fd231d2.
- It conflicts with the existing llvm::size in STLExtras, which will now never be called. - Calling it without llvm:: breaks C++17 compat
show more ...
|
| #
ef820632 |
| 26-Jan-2022 |
serge-sans-paille <[email protected]> |
Rename llvm::array_lengthof into llvm::size to match std::size from C++17
As a conquence move llvm::array_lengthof from STLExtras.h to STLForwardCompat.h (which is included by STLExtras.h so no buil
Rename llvm::array_lengthof into llvm::size to match std::size from C++17
As a conquence move llvm::array_lengthof from STLExtras.h to STLForwardCompat.h (which is included by STLExtras.h so no build breakage expected).
show more ...
|
|
Revision tags: llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2 |
|
| #
7725331c |
| 10-Jan-2022 |
Nikita Popov <[email protected]> |
[CodeGen] Avoid some pointer element type accesses
Possibly this is sufficient to fix PR53089.
|
| #
d2cc6c2d |
| 03-Jan-2022 |
Serge Guelton <[email protected]> |
Use a sorted array instead of a map to store AttrBuilder string attributes
Using and std::map<SmallString, SmallString> for target dependent attributes is inefficient: it makes its constructor sligh
Use a sorted array instead of a map to store AttrBuilder string attributes
Using and std::map<SmallString, SmallString> for target dependent attributes is inefficient: it makes its constructor slightly heavier, and involves extra allocation for each new string attribute. Storing the attribute key/value as strings implies extra allocation/copy step.
Use a sorted vector instead. Given the low number of attributes generally involved, this is cheaper, as showcased by
https://llvm-compile-time-tracker.com/compare.php?from=5de322295f4ade692dc4f1823ae4450ad3c48af2&to=05bc480bf641a9e3b466619af43a2d123ee3f71d&stat=instructions
Differential Revision: https://reviews.llvm.org/D116599
show more ...
|
| #
06e9733f |
| 08-Jan-2022 |
Simon Pilgrim <[email protected]> |
[CGExpr] Use castAs<> instead of getAs<> to avoid dereference of nullptr
This will assert the cast is correct instead of returning nullptr
|
| #
09669e6c |
| 21-Dec-2021 |
Nikita Popov <[email protected]> |
[CodeGen] Avoid pointer element type access when creating LValue
This required fixing two places that were passing the pointer type rather than the expected pointee type to the method.
|
| #
9a05a7b0 |
| 21-Dec-2021 |
Nikita Popov <[email protected]> |
[CodeGen] Accept Address in CreateLaunderInvariantGroup
Add an overload that accepts and returns an Address, as we generally just want to replace the pointer with a laundered one, while retaining re
[CodeGen] Accept Address in CreateLaunderInvariantGroup
Add an overload that accepts and returns an Address, as we generally just want to replace the pointer with a laundered one, while retaining remaining information.
show more ...
|
| #
e751d978 |
| 20-Dec-2021 |
Nikita Popov <[email protected]> |
[CodeGen] Avoid some pointer element type accesses
This avoids some pointer element type accesses when compiling C++ code.
|
| #
58c8c532 |
| 16-Dec-2021 |
Nikita Popov <[email protected]> |
[CodeGen] Avoid more pointer element type accesses
|
| #
b9492ec6 |
| 15-Dec-2021 |
Nikita Popov <[email protected]> |
[CodeGen] Avoid some pointer element type accesses
|
| #
d930c315 |
| 15-Dec-2021 |
Nikita Popov <[email protected]> |
[CodeGen] Pass element type to EmitCheckedInBoundsGEP()
Same as for other GEP creation methods.
|
| #
90bbf79c |
| 15-Dec-2021 |
Nikita Popov <[email protected]> |
[CodeGen] Avoid some deprecated Address constructors
Some of these are on the critical path towards making something minimal work with opaque pointers.
|
| #
b4f46555 |
| 15-Dec-2021 |
Nikita Popov <[email protected]> |
[CodeGen] Avoid some pointer element type accesses
|
| #
abbc2e99 |
| 14-Dec-2021 |
Nikita Popov <[email protected]> |
[CodeGen] Store ElementType in Address
Explicitly track the pointer element type in Address, rather than deriving it from the pointer type, which will no longer be possible with opaque pointers. Thi
[CodeGen] Store ElementType in Address
Explicitly track the pointer element type in Address, rather than deriving it from the pointer type, which will no longer be possible with opaque pointers. This just adds the basic facility, for now everything is still going through the deprecated constructors.
I had to adjust one place in the LValue implementation to satisfy the new assertions: Global registers are represented as a MetadataAsValue, which does not have a pointer type. We should avoid using Address in this case.
This implements a part of D103465.
Differential Revision: https://reviews.llvm.org/D115725
show more ...
|
|
Revision tags: llvmorg-13.0.1-rc1 |
|
| #
3b9a85d1 |
| 10-Nov-2021 |
hsmahesha <[email protected]> |
[CFE][Codegen] Make sure to maintain the contiguity of all the static allocas
at the start of the entry block, which in turn would aid better code transformation/optimization.
Reviewed By: rnk
Dif
[CFE][Codegen] Make sure to maintain the contiguity of all the static allocas
at the start of the entry block, which in turn would aid better code transformation/optimization.
Reviewed By: rnk
Differential Revision: https://reviews.llvm.org/D110257
show more ...
|
| #
8adb6d6d |
| 07-Nov-2021 |
Benjamin Kramer <[email protected]> |
[clang] Use llvm::reverse. NFCI.
|
|
Revision tags: llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3, llvmorg-13.0.0-rc2, llvmorg-13.0.0-rc1, llvmorg-14-init, llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3, llvmorg-12.0.1-rc2, llvmorg-12.0.1-rc1 |
|
| #
dcd74716 |
| 20-May-2021 |
Nathan Sidwell <[email protected]> |
[clang] p0388 conversion to incomplete array
This implements the new implicit conversion sequence to an incomplete (unbounded) array type. It is mostly Richard Smith's work, updated to trunk, testc
[clang] p0388 conversion to incomplete array
This implements the new implicit conversion sequence to an incomplete (unbounded) array type. It is mostly Richard Smith's work, updated to trunk, testcases added and a few bugs fixed found in such testing.
It is not a complete implementation of p0388.
Differential Revision: https://reviews.llvm.org/D102645
show more ...
|
| #
db9c2d77 |
| 12-Oct-2021 |
hsmahesha <[email protected]> |
[CFE][Codegen] Remove CodeGenFunction::InitTempAlloca()
Sequel patch to https://reviews.llvm.org/D111316
Finally, remove the defintion of CodeGenFunction::InitTempAlloca().
Reviewed By: rjmccall
[CFE][Codegen] Remove CodeGenFunction::InitTempAlloca()
Sequel patch to https://reviews.llvm.org/D111316
Finally, remove the defintion of CodeGenFunction::InitTempAlloca().
Reviewed By: rjmccall
Differential Revision: https://reviews.llvm.org/D111324
show more ...
|
| #
0f0e31cf |
| 02-Oct-2021 |
serge-sans-paille <[email protected]> |
Update inline builtin handling to honor gnu inline attribute
Per the GCC info page:
If the function is declared 'extern', then this definition of the function is used only for inlining. In
Update inline builtin handling to honor gnu inline attribute
Per the GCC info page:
If the function is declared 'extern', then this definition of the function is used only for inlining. In no case is the function compiled as a standalone function, not even if you take its address explicitly. Such an address becomes an external reference, as if you had only declared the function, and had not defined it.
Respect that behavior for inline builtins: keep the original definition, and generate a copy of the declaration suffixed by '.inline' that's only referenced in direct call.
This fixes holes in c3717b6858d32d64514a187ede1a77be8ba4e542.
Differential Revision: https://reviews.llvm.org/D111009
show more ...
|
| #
b1fcca38 |
| 03-Oct-2021 |
Dávid Bolvanský <[email protected]> |
Fixed warnings in LLVM produced by -Wbitwise-instead-of-logical
|
| #
85f612ef |
| 28-Sep-2021 |
David Blaikie <[email protected]> |
DebugInfo: Use sugared function type when emitting function declarations for call sites
Otherwise we're losing type information for these functions.
|
| #
ea21d688 |
| 22-Sep-2021 |
Florian Hahn <[email protected]> |
[Matrix] Emit assumption that matrix indices are valid.
The matrix extension requires the indices for matrix subscript expression to be valid and it is UB otherwise.
extract/insertelement produce p
[Matrix] Emit assumption that matrix indices are valid.
The matrix extension requires the indices for matrix subscript expression to be valid and it is UB otherwise.
extract/insertelement produce poison if the index is invalid, which limits the optimizer to not be bale to scalarize load/extract pairs for example, which causes very suboptimal code to be generated when using matrix subscript expressions with variable indices for large matrixes.
This patch updates IRGen to emit assumes to for index expression to convey the information that the index must be valid.
This also adjusts the order in which operations are emitted slightly, so indices & assumes are added before the load of the matrix value.
Reviewed By: erichkeane
Differential Revision: https://reviews.llvm.org/D102478
show more ...
|
| #
735f4671 |
| 09-Sep-2021 |
Chris Lattner <[email protected]> |
[APInt] Normalize naming on keep constructors / predicate methods.
This renames the primary methods for creating a zero value to `getZero` instead of `getNullValue` and renames predicates like `isAl
[APInt] Normalize naming on keep constructors / predicate methods.
This renames the primary methods for creating a zero value to `getZero` instead of `getNullValue` and renames predicates like `isAllOnesValue` to simply `isAllOnes`. This achieves two things:
1) This starts standardizing predicates across the LLVM codebase, following (in this case) ConstantInt. The word "Value" doesn't convey anything of merit, and is missing in some of the other things.
2) Calling an integer "null" doesn't make any sense. The original sin here is mine and I've regretted it for years. This moves us to calling it "zero" instead, which is correct!
APInt is widely used and I don't think anyone is keen to take massive source breakage on anything so core, at least not all in one go. As such, this doesn't actually delete any entrypoints, it "soft deprecates" them with a comment.
Included in this patch are changes to a bunch of the codebase, but there are more. We should normalize SelectionDAG and other APIs as well, which would make the API change more mechanical.
Differential Revision: https://reviews.llvm.org/D109483
show more ...
|