- Jun 15, 2020
-
-
Daniel Kiss authored
Summary: SCTLR_EL1.BT[01] controls the PACI[AB]SP compatibility with PBYTE 11 (see [1]) This bit will be set to zero so PACI[AB]SP are equal to BTI C instruction only. [1] https://developer.arm.com/docs/ddi0595/b/aarch64-system-registers/sctlr_el1 Reviewers: chill, tamas.petz, pbarrio, ostannard Reviewed By: tamas.petz, ostannard Subscribers: kristof.beyls, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D81746
-
Jacques Pienaar authored
Use ::Adaptor alias instead uniformly. Makes the naming more consistent as adaptor can refer to attributes now too. Differential Revision: https://reviews.llvm.org/D81789
-
Matt Arsenault authored
The logic is written for what loads/stores should be selectable. There are a set of cases that should be selectable, but due to missing MVTs and/or selection patterns, will fail to select. I think eventually load/store select patterns should ignore the type and only look at the value size, but until that happens, bitcast these to equivalent i32 vectors.
-
Matt Arsenault authored
These were failing due to an unlegalizable G_CONCAT_VECTORS due to registers with types that are naturally illegal.
-
Matt Arsenault authored
Extract subvectors and cast to the result element type before remerging.
-
Sander de Smalen authored
This fixes a buildbot failure on Builder llvm-clang-win-x-aarch64. The size of the module increased to just over 30kb due to new Decl TypeDefs being added to the module after D81459 that adds new ACLE types.
-
Tyker authored
Prevent IR-gen from emitting consteval declarations Summary: with this patch instead of emitting calls to consteval function. the IR-gen will emit a store of the already computed result.
-
James Henderson authored
Standard opcodes usually have ULEB128 arguments, so it is generally not possible to recover from such errors. This patch causes the parser to stop parsing the table in such situations. Also don't emit the operands or add data to the table if there is an error reading these opcodes. Reviewed by: JDevlieghere Differential Revision: https://reviews.llvm.org/D81470
-
Frederik Gossen authored
Apply post-commit suggestions (see https://reviews.llvm.org/D79479). Differential Revision: https://reviews.llvm.org/D81731
-
Frederik Gossen authored
Apply post-commit suggestions (see https://reviews.llvm.org/D81551). Add documentation, simplify, and fix test cases. Differential Revision: https://reviews.llvm.org/D81722
-
Kirill Bobyrev authored
This reverts commit 51c5baac and also 337fb8c7 - "[lld-macho] Set REQUIRES: x86 on more tests". These patches cause test crashes: http://lab.llvm.org:8011/builders/ppc64le-lld-multistage-test/builds/10054
-
Marcel Koester authored
allocations cannot be moved freely and can remain in divergent control flow. The current BufferPlacement pass does not support allocation nodes that carry additional dependencies (like in the case of dynamic shaped types). These allocations can often not be moved freely and in turn might remain in divergent control-flow branches. This requires a different strategy with respect to block arguments and aliases. This CL adds additinal functionality to support allocation nodes in divergent control flow while avoiding memory leaks. Differential Revision: https://reviews.llvm.org/D79850
-
Kirill Bobyrev authored
This reverts commit 3bab88b7. This patch causes test failures: http://lab.llvm.org:8011/builders/clang-cmake-armv7-quick/builds/17260
-
Georgii Rymar authored
We have an issue currently. The following YAML piece just ignores the `Excluded` key. ``` SectionHeaderTable: Sections: [] Excluded: - Name: .foo ``` Currently the meaning is: exclude the whole table. The code checks that the `Sections` key is empty and doesn't catch/check invalid/duplicated/missed `Excluded` entries. Also there is no way to exclude all sections except the first null section, because `Sections: []` currently just excludes the whole the sections header table. To fix it, I suggest a change of the behavior. 1) A new `NoHeaders` key is added. It provides an explicit syntax to drop the whole table. 2) The meaning of the following is changed: ``` SectionHeaderTable: Sections: [] Excluded: - Name: .foo ``` Assuming there are 2 sections in the object (a null section and `.foo`), with this patch it means: exclude the `.foo` section, keep the null section. The null section is an implicit section and I think it is reasonable to make "Sections: []" to mean it is implicitly added. It will be consistent with the global "Sections" tag that is used to describe sections. 3) `SectionHeaderTable->Sections` is now optional. No `Sections` is the same as `Sections: []` (I think it avoids a confusion). 4) Using of `NoHeaders` together with `Sections`/`Excluded` is not allowed. 5) It is possible to use the `Excluded` key without the `Sections` key now (in this case `Excluded` must contain all sections). 6) `SectionHeaderTable:` or `SectionHeaderTable: []` is not allowed. 7) When the `SectionHeaderTable` key is present, we still require all sections to be present in `Sections` and `Excluded` lists. No changes here, we are still strict. Differential revision: https://reviews.llvm.org/D81655 -
Simon Pilgrim authored
These should fold to memcmp/ptest/movmsk+cmpeq patterns
-
Haojian Wu authored
Reviewers: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D81739
-
Kazushi (Jam) Marukawa authored
Summary: Change VEAsmParser to support identification with relocation information in assmebler. Change VEAsmBackend to support relocation information in MC layer. Change VEDisassembler and VEMCCodeEmitter to support binary generation of branch target operands. Add REFLONG fixup and variant kind to support new R_VE_REFLONG ELF symbol. And, add regression test in both MC and CodeGen to check binary genaration with relocation information. Differential Revision: https://reviews.llvm.org/D81553
-
Dominik Montada authored
[MachineVerifier][GlobalISel] Check that branches have a MBB operand or are declared indirect. Add missing properties to G_BRJT, G_BRINDIRECT Summary: Teach MachineVerifier to check branches for MBB operands if they are not declared indirect. Add `isBarrier`, `isIndirectBranch` to `G_BRINDIRECT` and `G_BRJT`. Without these, `MachineInstr.isConditionalBranch()` was giving a false-positive for those instructions. Reviewers: aemerson, qcolombet, dsanders, arsenm Reviewed By: dsanders Subscribers: hiraditya, wdng, simoncook, s.egerton, arsenm, rovka, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D81587
-
Max Kazantsev authored
This test demonstrates weird behavior of SimplifyCFG: seems that bigger size of block leads to worse optimization choice.
-
Tyker authored
Summary: with this patch instead of emitting calls to consteval function. the IR-gen will emit a store of the already computed result. Reviewers: rsmith Reviewed By: rsmith Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D76420
-
Kirill Bobyrev authored
This code generates Clang-Tidy warnings otherwise.
-
Alexander Belyaev authored
Differential Revision: https://reviews.llvm.org/D81735
-
Sam Parker authored
Have BasicTTI call the base implementation so that both agree on the default behaviour, which the default being a cost of '1'. This has required an X86 specific implementation as it seems to be very reliant on those instructions being free. Changes are also made to AMDGPU so that their implementations distinguish between cost kinds, so that the unrolling isn't affected. PowerPC also has its own implementation to prevent changes to the reg-usage vectorizer test. The cost model test changes now reflect that ret instructions are not generally free. Differential Revision: https://reviews.llvm.org/D79164
-
Kirill Bobyrev authored
Cleanup after https://reviews.llvm.org/D81459
-
Kristina Bessonova authored
No need to parse and add the same variables twice if runtimes is being built for a generic target (i.e. w/o multilib). Reviewed By: phosek Differential Revision: https://reviews.llvm.org/D81574
-
Sam Parker authored
Enable TTIImpl::getUserCost to handle FNeg so that getInstructionThroughput can call that instead. This means we can remove the code in the AMDGPU backend too. Differential Revision: https://reviews.llvm.org/D81635
-
Nikita Popov authored
When checking for an enum function attribute, use hasFnAttribute() rather than hasAttribute() at FunctionIndex, because it is significantly faster (and more concise to boot).
-
Sam Parker authored
Move the cost modelling, with the reduction pattern matching, from getInstructionThroughput into generic TTIImpl::getUserCost. The modelling in the AMDGPU backend can now be removed. Differential Revision: https://reviews.llvm.org/D81643
-
Max Kazantsev authored
-
Fangrui Song authored
-
Sam Parker authored
This reverts commit 23291b98. This caused performance regressions.
-
Sander de Smalen authored
The AAPCS specifies that the tuple types such as `svint32x2_t` should use their `arm_sve.h` names when mangled instead of their builtin names. This patch also renames the internal types for the tuples to be prefixed with `__clang_`, so they are not misinterpreted as specified internal types like the non-tuple types which *are* defined in the AAPCS. Using a builtin type for the tuples is a purely a choice of the Clang implementation. Reviewers: rsandifo-arm, c-rhodes, efriedma, rengolin Reviewed By: efriedma Tags: #clang Differential Revision: https://reviews.llvm.org/D81721
-
Sander de Smalen authored
This patch adds new SVE types to Clang that describe tuples of SVE vectors. For example `svint32x2_t` which maps to the twice-as-wide vector `<vscale x 8 x i32>`. Similarly, `svint32x3_t` will map to `<vscale x 12 x i32>`. It also adds builtins to return an `undef` vector for a given SVE type. Reviewers: c-rhodes, david-arm, ctetreau, efriedma, rengolin Reviewed By: c-rhodes Tags: #clang Differential Revision: https://reviews.llvm.org/D81459
-
Vitaly Buka authored
Move core which removes markers out of StackColoring.
-
Vitaly Buka authored
-
Vitaly Buka authored
-
Vitaly Buka authored
-
Vitaly Buka authored
-
Vitaly Buka authored
-
Vitaly Buka authored
-