- User Since
- Nov 15 2019, 2:59 AM (28 w, 1 d)
- Updated title and description.
- Replaced pointer element type usage to i32 type for getIntrinsic.
- Volatile argument of the instrinsic now comes from pointer type of the first argument of the builtin.
- Updated all test cases wrt above change.
- Added test case for volatile pointer type.
Wed, May 27
Tue, May 26
Shifted test cases in openmp-offload-gpu.c for better visual segmentation.
Updated device function test case to be more accurate.
Fri, May 22
Added test case to show treatment of specific functions as builtins or functions on the device
Mon, May 18
Fixed typo. Added test case to check for device side functions.
Sun, May 17
Removed isOpenMPGPU() to avoid defining OpenMP compatibility of an architecture.
Reverting back to explicitly checking NVPTX and AMDGCN architectures. Also, split
handling of NVPTX's and AMDGCN's handling of getBuiltinID. For AMDGCN it now uses
OpenMPIsDevice LangOpt and returns 0 for every device library function, except for
printf and malloc.
Fri, May 15
Moved isGPU() from llvm's Triple.h to clang's TargetInfo. Renamed it to isOpenMPGPU()
to represent target's compatibility with OpenMP offloading and reduce its scope.
Thu, May 14
Added test cases. Added a wrapper isGPU() for isNVPTX()/isAMDGCN().
Mon, May 11
Fixed lint errors.
Removed a break
Switched the nested loops in lowerShiftReservedVGPR() to move
sorting of unique live-ins to the outer loop. Improved cleanup of
reserved vgpr after lowering it to a lower value, and when it needs
to be removed.
Fri, May 8
Handled a test case which was failing in debug only.
Removed unsued frame index argument from vgpr reserving function. Added condition to reserve vgpr only if machine function has stack objects.
Thu, May 7
Wed, May 6
Cleaned code for reserving vgpr.
Fixed failing test cases. Now VGPR reservation happens in an
independent function and doesn't overload allocateSGPRSpillToVGPR.
Updated test case to hard code usage of all but one VGPRs and use
it for SGPR spill.
Tue, May 5
Handled few seg faults in the lit-tests.
Sun, May 3
Removed commented code.
Rebased and added code for proper lower shifting of reserved VGPR.
Apr 24 2020
Updated description and added a failing test case for integer scope.
Apr 23 2020
Added check and test for sync scope to be a constant literal.
Apr 22 2020
Removed documentation from clang doc. Squashed all changes into a single commit.
Now highest available VGPR is reserved in the beginning and it is
switched with lowest available VGPR after RA.
Moved builtin-amdgcn-fence-failure.cpp from clang/test/CodeGenCXX/
to clang/test/Sema/ since it is checking an error.
Removed stale commented code
Changed the builtin to be AMDGCN-specific
Apr 17 2020
- Moved test case to clang/test/CodeGenCXX.
- Added a failing test case with invalid sync scope, which gets detected by implementation of fence instruction.
- Updated the change description of the builtin.
- Updated the clang documentation describing mapping of C++ memory-ordering to LLVM memory-ordering.
Apr 10 2020
Removed reserved VGPR from RA list. Added a test case which
ensures spilling of SGPR into reserved VGPR.
Apr 6 2020
- Moved builtin definition with rest of atomic builtins
- Updated validity checking of memory order using exact mathches instead of range matching
- Added a sucessful test case which passes arbitrary string scope
- Corrected formatting
Apr 5 2020
Removed OpenCL specific dependencies
Mar 10 2020
Nov 18 2019