- User Since
- Jan 28 2015, 2:26 PM (133 w, 3 d)
Thu, Aug 17
I see this has already been done in https://reviews.llvm.org/rL310667. My sources seem to have been outdated. Abandoning this one.
Adopted @dblaikie 's changes for pointer-like traits.
Sat, Aug 12
Probably a layering violation to include this here. Also seems like a narrow solution - would require more special casing here for other types that are like these two whenever they might get used in a map eventually, etc.
Yes, this is true. But I cannot think of a way of overcoming this.
Addressed comments in the unit test.
Moved unittests/ADT/ReverseIteration.cpp to unittests/Support/ReverseIteration.cpp.
Wed, Aug 9
Checked if type is pointer-like without adding a new trait. Instead used PointerLikeTypeTraits::NumLowBitsAvailable.
Mon, Aug 7
This patch does 3 things:
Sun, Aug 6
We removed -reverse-iterate flag and the base definition for PointerLikeTypeTraits here, we need https://reviews.llvm.org/D36386
which removes clang unit test which used -reverse-iterate and marks member functions of PointerLikeTypeTraits
as public to get past a compilation error.
Wed, Aug 2
Tue, Aug 1
LGTM. However, I would wait for someone more aware of buildbots to +1 this.
Added Victor Leschuk as reviewer since Galina is on vacation.
Mon, Jul 31
@mstorsjo I see that spec2000/eon calls __getReg, _ReadStatusReg and _WriteStatusReg intrinsics for ARM64. I think I would need to implement them in llvm. Do you know where can I find a doc explaining their behavior?
Related clang patch: https://reviews.llvm.org/D36111
Related llvm patch: https://reviews.llvm.org/D36110
Sun, Jul 30
I still wonder if it'd be better if this was not mutable - a compile time constant, this would also potentially remove the need for all the preprocessor work. It could rely on the reverse iteration being a constant (not a command line arg, or mutable internally) and rely on the compiler doing dead code elimination to remove the unnecessary code instead of #if.
Was it not possible to use something more like what I'd suggested - that would've worked (I think) with PointerLikeTypeTraits? Or did that not seem to work out?
Sounded like Richard had an idea of how to do it even more simply than my suggestion, maybe... (if we removed the base definition of PointerLikeTypeTraits & were able to test on the completeness of the class, rather than checking for the specific member as I'd done)
Fri, Jul 28
@mstorsjo Could you please add me as subscriber to your COFF ARM64 patches? We are trying to build spec2k/spec2k6 for COFF and running into issues with vararg functions. Some of your patches have fixed our issues :)
Thu, Jul 27
Tue, Jul 25
Patch updated as per comments.
Refer http://infocenter.arm.com/help/topic/com.arm.doc.ihi0053c/IHI0053C_acle_2_0.pdf for memory barriers.
I was able to build the entire spec2000 suite with this patch. So looks fine to me.
Mon, Jul 24
LGTM. We recently encountered the "fixup out of range" for temporary symbols. We worked around this by turning off temporary symbols for COFF. Thanks for fixing this!
Ping 2 for reviews please!
Jul 20 2017
Reverted the change in AsmPrinter.cpp.
Ping for reviews please.
Jul 18 2017
Removed extra check label CHECK-RESERVE-X18-COFF.
I pushed a new patch D35531. This implements the logic in llvm AArch64SubTarget which seems to be the proper place to do this.
Once that patch is reviewed/accepted, I will abandon this one.
Jul 17 2017
>> The old way of doing this supported emitting both dwarf and CV, which we briefly considered to be interesting. There isn't any real use case for it, but I think I'd prefer it if these things were independent. We shouldn't have a dwarf version flag if the frontend wants us to emit codeview.
I have a related question: Does it make sense to make -gcodeview the default for Windows COFF targets (both arm/arm64)? ie: clang would internally add -gcodeview if -g is passed.
Committed here: https://reviews.llvm.org/rL308223
Jul 16 2017
I have addressed comments, and my previous patch was accepted by @compnerd. So unless someone has any more comments I will go ahead and commit this.
Matched the data layout string to the one in D34859
Added size for long double.
Added test cases.
Added test cases for all the implemented relocation types.
Changed unit test to .s according to comments.
Unit tests for IMAGE_REL_ARM64_PAGEOFFSET_12A and IMAGE_REL_ARM64_PAGEOFFSET_12L not added as llvm-mc currently cannot parse the assembly for these. Here is my code for the above two relocations:
Jul 15 2017
@rnk Got it! Thanks. Will push an updated patch.
Added more relocations.
Could not find a test case for IMAGE_REL_ARM64_ADDR32NB.
I see that IMAGE_REL_ARM64_SECTION is generated only on Windows with dumpbin (and not on Linux with llvm-objdump). Does it make sense to limit this unit test only for Windows?
Jul 14 2017
Further cleaned up the code by moving the ReverseIteration code out of CommandLine.cpp and into its own class.
Added set/get functions instead of directly modifying the variable.
The test clang/test/Rewriter/objc-modern-metadata-visibility2.mm is listed as UNSUPPORTED since the test contains REQUIRES:abi-breaking-checks but clang does not support this yet.