This is an archive of the discontinued LLVM Phabricator instance.

Improve support for non-llvm intrinsics.
AbandonedPublic

Authored by arames on Mar 23 2017, 9:37 AM.

Details

Summary

These commits improve support for target and non-llvm intrinsics.

  • Provide a way to declare intrinsics not prefixed with llvm..
  • Expose the intrinsic name lookup code so it can be used by intrinsics not starting with llvm..

Event Timeline

arames created this revision.Mar 23 2017, 9:37 AM
arames retitled this revision from [tblgen] Allow skipping `llvm`. for tgt intrinsics to Improve support for non-llvm intrinsics..Mar 23 2017, 9:45 AM
arames edited the summary of this revision. (Show Details)
arames added a reviewer: llvm-commits.
arames edited the summary of this revision. (Show Details)
arames added a reviewer: rnk.Mar 23 2017, 9:47 AM
bjope added a subscriber: bjope.Mar 23 2017, 2:09 PM
arames updated this revision to Diff 93254.Mar 28 2017, 10:02 AM

Rebased on top of tree.

ab added a subscriber: ab.Mar 28 2017, 10:31 AM

Can you explain why this is necessary?

"llvm." is the only reserved prefix for global identifiers; removing that assumption opens the door to problems we could easily avoid (for instance, what happens when I use IR that has functions named 'X.foo' ? Are those doomed to be forbidden from the 'X' backend?)

rnk edited edge metadata.Mar 29 2017, 5:18 PM

I'm having a hard time justifying support for this in LLVM. You can already make target-specific intrinsics starting with "llvm.myisa.", so there isn't much gained by this.

arames added a comment.Apr 7 2017, 1:18 PM

Following some review with Ahmed (ab), we think it will not make sense for upstream.

arames abandoned this revision.Apr 7 2017, 1:19 PM