HIPCC(1)
π hipcc(1) β the HIP compiler, but make it make sense π
okay bestie, so this is the manual page for hipcc, and it lives in the User Commands section of the manual (that's the (1) in the corner, iykyk). It's a compiler wrapper, it's iconic, and by the end of this page you're gonna be obsessed. π«Ά
β¨ NAME β¨
hipcc β the HIP compiler. that's it, that's the name, she's simple and she serves π
πΈ SYNOPSIS πΈ
usage: hipcc [OPTIONS] FILENAME ...
Like, you give her some OPTIONS, you give her some FILENAME ... (yes plural, she can take many, she's greedy in the best way), and she does her thing. Periodt. β¨
π¦ DESCRIPTION π¦
Okay so here's the tea. The hipcc script is a wrapper β she wraps clang or nvcc depending on the value of the HIP_PLATFORM that hipconfig reports. Which one she picks is literally entirely up to that value. No cap.
When you're building for the AMD platform, the options you hand to hipcc get forwarded straight to clang. Like, she's the middleman, she passes them along, no drama.
But wait, there's more π β the hipcc script also adds extra options to the list of arguments being forwarded. The glow-ups she applies on her own:
-x hipβ forces the compilation language to be HIP. no ambiguity, we're doing HIP today.-O3β added when no optimization level is specified. bestie said default optimization goes hard.--offload-archβ added with an autodetected GPU architecture if no target architecture is specified. she looks at your GPU and she knows. π
π ENVIRONMENT π
The vibes are configurable, bestie. Here's every environment variable that changes what she does:
HIPCC_VERBOSEβ this environment variable can enable additional output. So if you want her to spill the details, this is the girl for the job. The following flags control the level of verbosity to be printed:0x1β the clang command being invoked. (not me showing you exactly what I'm running π)0x2β the paths to HIP components.0x3β the argumentshipccwas called with.
HIPCC_COMPILE_FLAGS_APPENDβ the contents of this variable are added to the end of the argument list that is passed to clang when compiling.HIPCC_LINK_FLAGS_APPENDβ the contents of this variable are added to the end of the argument list that is passed to clang when linking. (yes she has a separate one for linking, she's organized like that π )DEVICE_LIB_PATHβ this variable is used to override the path to the ROCm device libraries. You want a different path? Say less.HIP_LIB_PATHβ this variable is used to override the path to the directory containing the HIP runtime library. Another path override, another slay.HIP_CLANG_HCC_COMPAT_MODEβ this variable is used to specify if clang should enable options that make it more compatible with the oldhcccompiler. And what does that include? It includes allowing the half float type to be used in function signatures as arguments or return values. And when you're in this mode, the__HIP_HCC_COMPAT_MODE__preprocessor macro will also be defined. So like, legacy support but make it cozy π§HIP_CLANG_LAUNCHERβ this environment variable specifies a path to an executable to use for launching HIP clang, which can be useful for making use of a compiler caching tool. Fancy. She's outsourcing the launch and honestly? valid. π₯
β οΈ bestie, these are overrides and appends β they change what actually gets run. Read them before you yeet them into your shell profile, fr fr.
π SEE ALSO π
hipconfig(1)β the girl who reports the platform in the first place. Go say hi. π
okay and that's the whole page, you ate it, you understood it, you're the main character now π
This page is for hipcc version 7.0.1, dated October 2025, from the HIPCC(1) manual. Thanks for reading, ily, go compile something beautiful. πβ¨π
π¦ where this page comes from
- ubuntu resolute: hipcc 7.1.1+dfsg-0ubuntu1 Β· MIT
- ubuntu resolute: hipcc-rocm 7.1.0+dfsg-0ubuntu1 Β· Apache-2.0 WITH LLVM exception
- ubuntu stonking: hipcc 7.2.4+dfsg-1~exp1 Β· MIT
- ubuntu stonking: hipcc-rocm 10.0+dfsg-0ubuntu1 Β· Apache-2.0 WITH LLVM exception
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms