This is an archive of the discontinued LLVM Phabricator instance.

[xray] Add support for hexagon architecture
ClosedPublic

Authored by androm3da on Nov 10 2021, 6:51 PM.

Details

Summary

Adds x-ray support for hexagon to llvm codegen, clang driver, compiler-rt libs.

Diff Detail

Event Timeline

androm3da created this revision.Nov 10 2021, 6:51 PM
androm3da requested review of this revision.Nov 10 2021, 6:51 PM
Herald added projects: Restricted Project, Restricted Project, Restricted Project. · View Herald TranscriptNov 10 2021, 6:51 PM
Herald added subscribers: llvm-commits, Restricted Project, cfe-commits. · View Herald Transcript

This patch spans several areas, so I would be happy to decompose it into smaller parts if it made it easier for reviewers.

compiler-rt/lib/xray/xray_hexagon.cpp
77–85

If we need to support cases where the entire sled spans cache lines, then we must iterate over the icinva() instead.

77–85

Other arches do atomic stores. I think we will need to change this to: LL first, then icinva/isync, then SC.

If the SC fails then either we re-run all those steps because we want to clobber it or we do nothing because we assume some other thread applied the same patch first?

Ping - any thoughts/concerns?

kparzysz accepted this revision.Dec 8 2021, 11:26 AM

LGTM. Thanks!

This revision is now accepted and ready to land.Dec 8 2021, 11:26 AM
This revision was landed with ongoing or failed builds.Dec 9 2021, 5:48 AM
This revision was automatically updated to reflect the committed changes.

Whoops -- sorry, I had forgotten to change my email settings and missed this.

Thanks for the patch, it's exciting to see XRay being supported in the Hexagon architecture!

recordSled(CurSled, MI, Kind, 0); is not intended. All new ports should use version 2.

Herald added a project: Restricted Project. · View Herald TranscriptDec 28 2022, 11:35 AM
Herald added a subscriber: Enna1. · View Herald Transcript