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

[GridLaunch] Fixes for anonymous namespace types #31

Merged
merged 4 commits into from
Apr 16, 2016
Merged

[GridLaunch] Fixes for anonymous namespace types #31

merged 4 commits into from
Apr 16, 2016

Conversation

kwu91
Copy link
Contributor

@kwu91 kwu91 commented Apr 16, 2016

Types in anonymous namespaces are labeled with "(anonymous namespace)" string. This PR resolves the parenthesis and space characters when generating the GridLaunch wrapper.

Clang will sometimes mark the kernel function with InternalLinkage if the arguments contain types in anonymous namespaces. This will interfere with the opt passes in clamp-link. This PR also resolves that issue by forcing GridLaunch kernel functions to the default ExternalLinkage.

Finally, this PR adds some additional debugging information when a type is unknown.


Tests:

ROCK: master/b0b2dee
ROCR: master/de0d9b5

Failing Tests (4):                        
    CPPAMP :: Unit/HC/memcpy_symbol1.cpp  
    CPPAMP :: Unit/HC/memcpy_symbol3.cpp  
    CPPAMP :: Unit/HC/wg_size.cpp         
    CPPAMP :: Unit/HSAIL/shfl_xor.cpp     

  Expected Passes    : 663                
  Expected Failures  : 25                 
  Unsupported Tests  : 10                 
  Unexpected Failures: 4                  

master also seems to have the same failure rate.


HIP-privatestaging: privatestaging/31dc13d2
HIP-Examples-privatestaging: privatestaging/23c7882

All tests passed, except for hipHostRegister. Expected fail.
All examples passed.

Left-parenthesis '('
Right-parenthesis ')'
Space ' '
Some functions that have arguments belonging to an anonymous namespace
may receive InternalLinkage. InternalLinkage interferes with HCC linking
passes and causes a broken function. This sets kernel to ExternalLinkage
so it can always be visible.
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