- User Since
- May 18 2016, 6:13 AM (227 w, 1 d)
Thu, Sep 17
Wed, Sep 16
Tue, Sep 15
Added tests for implicit casts between GNU and fixed-length SVE vectors. I was planning to create a separate patch for this but since it's only tests and no functional changes I've included it in this patch.
Mon, Sep 14
Fri, Sep 11
Thu, Sep 10
- Get the element type of scalable vectors from getBuiltinVectorTypeInfo when creating VLS types. This fixes the ABI issue since it calls ASTContext::getIntTypeForBitwidth which gets the correct type for a given target.
- Element type for svfloat16_t is changed from Float16Ty to HalfTy for VLS types since this is what’s used elsewhere.
Wed, Sep 9
Fri, Sep 4
I see no CHECK line for warnings in sve-split-store.ll?
Thu, Sep 3
Wed, Sep 2
Closing this now the prototype has been split into separate patches that have landed.
Tue, Sep 1
Fri, Aug 28
Thu, Aug 27
Wed, Aug 26
Aug 25 2020
Aug 24 2020
Aug 20 2020
Aug 18 2020
LGTM, just one minor nit but seems like a nice improvement
Aug 17 2020
Aug 14 2020
Replace getFixedSize with getKnownMinSize rather than skipping scalable vectors.
More getFixedSize fixes.
- s/getKnownMinSize/getFixedSize/g fixes.
- Implemented new mangling scheme for VLS types.
Aug 13 2020
Address @rsandifo-arm comments.
Aug 12 2020
Added missing implicit conversions for C++. I considered handling this with the
existing implicit vector conversion although one side of the conversion will be
an SVE builtin, so instead I've added a new conversion specifically for SVE. I
suspect the existing one could support this but I wasn't sure if that was a good
idea (?). In C++ implicit conversions between VLA/VLS have a rank just below
Aug 11 2020
Specify -aarch64-sve-vector-bits-min=512 in test.
Aug 5 2020
Aug 4 2020
Thanks for taking a look! I'll split this up into separate patches soon.
Aug 3 2020
I've posted a prototype D85128 with an alternative implementation, given it's quite different to this patch I've posted it as a separate patch and am abandoning this one. See new patch for more details, cheers
Jul 24 2020
there's a few places the getNumElements calls can be fixed by getting the initial cast right
Jul 23 2020
Jul 22 2020
Jul 21 2020
- Make helpers static in ASTContext.
- Use getCharWidth.
Jul 20 2020
Change the default for EnforceFixedLengthSVEAttribute.
- Remove internal type attributes (defined for each vector-size).
- Get the vector size from the arm_sve_vector_bits attribute via the AttributedTypeLoc associated with the typedef decl.
- Change NumBits argument for ArmSveVectorBits type attribute from int to unsigned.
- Only allow ArmSveVectorBits type attribute to be applied to typedefs (and added test).
- Set let PragmaAttributeSupport = 0; after specifying Subjects to fixed clang/test/Misc/pragma-attribute-supported-attributes-list.test.
- vector-length sized -> vector-length-sized.
Jul 18 2020
Jul 17 2020
Jul 16 2020
Use const auto * and remove cast
- Added comments for args in calls to ConvertTypeForMem when EnforceFixedLengthSVEAttribute is set and documented EnforceFixedLengthSVEAttribute.
- Documented memory representation for fixed-length predicates.
- Documented internal type attributes.
- Set ASTNode = 0 on user-facing ArmSveVectorBitsAttr as the internal type attrs are used in the AST. Also removed the case for this from TypePrinter.
- getSveVectorWidth now returns an unsigned. Added an unreachable if T has no attrs.
- s/getArmSveVectorBits/getBitwidthForAttributedSveType. Also now returns an unsigned and asserts if !T->isVLST().
- Add a few comments in test and reduced them a little so we dont tell all types for structs / unions etc.