-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove all the leftover of OmpAttribute #130
Comments
According to the failure of a recent CI test, the EDG submodule also depends on |
I have renamed the OmpAttribute.h/C file to ompSupport.h/C, and removed OmpAttribute class and its member functions, but leaving the enum definition there. I also removed OmpSupport.h file in ompLowering folder since it is just a header that include other headers. I am fixing this and will push. |
@ouankou I have a fix in EDG repo and now it is pushed to the master branch. Which branch is used for REX? Could you update the rex gitmodule to make sure that REX pull the needed EDG? |
@ouankou I have pushed latest fix for REX and CI is running, let us see whether it will pass. |
Thanks, Dr. Yan. The submodule is tied to a specific commit, regardless of which branch the commit is on. |
@ouankou what is the status of this issue? are you fixing it along with reverting upir? |
Yes, I'm also cleaning up the code while reverting UPIR. All the code used OmpAttribute has been removed by your previous commits except one: rexompiler/src/backend/unparser/FortranCodeGeneration/unparseFortran_statements.C Line 4050 in a6bd2df
There are several other leftover comments related to I fixed this by determining whether the leading keyword is |
This unparsing bug was caused by some other unknown problem instead of Given input: program main
include 'omp_lib.h'
integer i
integer item(10)
external process
do i = 1, 10
item(i) = 11-i
enddo
!$omp parallel
!$omp single
print *, 'using ', omp_get_num_threads(), ' threads'
do i = 1, 10
!$omp task
call process(i,item)
!$omp end task
enddo
!$omp end single
!$omp end parallel
end
******************************************
subroutine process(input,item)
include 'omp_lib.h'
integer input
integer item(10)
print *, 'idx ', input,'-> ', item(input)
print *, 'by thread ', omp_get_thread_num()
end
The output from code above: PROGRAM main
include "omp_lib.h"
INTEGER :: i
INTEGER, DIMENSION(10) :: item
external :: process
DO i = 1, 10
item(i) = 11 - i
END DO
!$omp parallel
!$omp single
PRINT *, 'using ',omp_get_num_threads(),' threads'
DO i = 1, 10
!$omp task
CALL process(i,item)
!$omp end task
END DO
!pragma omp end parallel
!$omp end single
******************************************
!$omp end parallel
END PROGRAM
SUBROUTINE process(input,item)
include "omp_lib.h"
INTEGER :: input
INTEGER, DIMENSION(10) :: item
PRINT *, 'idx ',input,'-> ',item(input)
PRINT *, 'by thread ',omp_get_thread_num()
END SUBROUTINE |
OmpAttribute
is the original IR of the ROSE OpenMP parser. We don't need that anymore since we use ompparser, whose IR isOpenMPIR
. Besides the OpenMP AST constructor, we also need to clean up all the code of OmpAttribute in other locations.The text was updated successfully, but these errors were encountered: