Skip to content
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

Pull recent NVIDIA changes #127

Merged
16 commits merged into from
Feb 17, 2018
Merged

Pull recent NVIDIA changes #127

16 commits merged into from
Feb 17, 2018

Conversation

ghost
Copy link

@ghost ghost commented Feb 16, 2018

No description provided.

gklimowicz and others added 16 commits February 8, 2018 12:05
Apply nodepchk to a loop/routine as a pragma nodepchk for simd
clause or simd construct. Since the host function has
information about nodepcheck, need to propagate the info to
outlined function when it was created because we lose sptr of
host function when we expand outlined function.
Pull 2018-02-08T12-20 Recent NVIDIA Changes
Disable 8-byte argument modifications in the runtime routine
table for nonstandard intrinsics idate and jdate.
Test that a pointer to a contiguous array section is passed
correctly for an assumed shape dummy argument.
If SDSC is not set, get the descriptor.

If it is set, do not overwrite the descriptor.
Pull 2018-02-09T11-21 Recent NVIDIA Changes
Pull 2018-02-09T14-19 Recent NVIDIA Changes
Add metadata to the loads and stores to tell LLVM that
it is ok to vectorize the loop and ignore dependence analysis.
(See !llvm.mem.parallel_loop_access for more info.)

This particular annotation will be disabled if we detect that
llvect has already vectorized the loop body.
## ... Target knl-64

instead of:

## ... Target knightslanding-64

"Unhid" the target processor "-tp knl", so now it is included
in the list of supported target processors that is generated.
If pod is true then pod2 won't be set. But it is read when pos
!= pass_pos.  Initialize pod2 so that it is well-defined when
it is read.
Consider invocations like
   foo()
     Character (max_charlen), Intent (Out) :: token(max_data_vals)
     token(1:n) = adjustl(token(1:n)

   bar()
     Character (*), Intent (In)    :: buffin
     buffall = adjustl(buffin)

The former gets converted to a subroutine call form, whereas
the latter remains as a func, the hash table would have an
entry for adjustl as void type, whereas the second call would
be expecting a return type of INT (actual result is passed as
hidden argument). This conflict type leads to an error. The
conversion to a subroutine call was enabled to prevent memory
allocation for a temp array used to store the return value of
the intrinsic, but the temp would never be used. This change
uses a single temp (in place of an array) to store the return
value of the call, thereby eliminating the need to convert it
to a subroutine call.

This change also fixes similar handling of 'adjustr' and 'trim'.
_mkshft sets the return value of type DT_INT which is incorrect.
Use mk_prototype to correctly set the prototype of the function.
Pull 2018-02-13T07-42 Recent NVIDIA Changes
@ghost ghost merged commit e160efe into isuruf:windows Feb 17, 2018
This pull request was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants