[Bug other/94136] New: GCC doc for built-in function __builtin___clear_cache() not 100% correct
bmeng.cn at gmail dot com
gcc-bugzilla@gcc.gnu.org
Wed Mar 11 08:26:13 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94136
Bug ID: 94136
Summary: GCC doc for built-in function
__builtin___clear_cache() not 100% correct
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: other
Assignee: unassigned at gcc dot gnu.org
Reporter: bmeng.cn at gmail dot com
Target Milestone: ---
See https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html
It says:
"Built-in Function: void __builtin___clear_cache (void *begin, void *end)
This function is used to flush the processor’s instruction cache for the region
of memory between begin inclusive and end exclusive. Some targets require that
the instruction cache be flushed, after modifying memory containing code, in
order to obtain deterministic behavior.
If the target does not require instruction cache flushes,
__builtin___clear_cache has no effect. Otherwise either instructions are
emitted in-line to clear the instruction cache or a call to the __clear_cache
function in libgcc is made."
When I was looking at the RISC-V port, I assumed the GCC RISC-V would replace
the call to __builtin___clear_cache() with __clear_cache() as the document
says, but it does not.
I raised this to RISC-V GCC and had a discussion with Andrew at:
https://github.com/riscv/riscv-gcc/issues/178
As Andrew suggested, the doc should be improved to avoid such confusion.
More information about the Gcc-bugs
mailing list