diff options
author | Peter Zotov <whitequark@whitequark.org> | 2016-08-30 10:48:31 +0000 |
---|---|---|
committer | Peter Zotov <whitequark@whitequark.org> | 2016-08-30 10:48:31 +0000 |
commit | 002572318938f74bb0177dd83d24a59b1cdd013d (patch) | |
tree | 2662b84887ca257991f4c27b15daa8448fb3d2e3 /llvm | |
parent | 96659df09c7b6920651dcbda8f11caad95d9bde8 (diff) | |
download | bcm5719-llvm-002572318938f74bb0177dd83d24a59b1cdd013d.tar.gz bcm5719-llvm-002572318938f74bb0177dd83d24a59b1cdd013d.zip |
docs: mention that clobbering output regs in inline asm is illegal.
I've found this out the hard way; LLVM will not normally catch this
error (unless -verify-machineinstrs is passed), and under certain
very specific circumstances (such as register scavenger running
under pressure) this would result in an opaque crash in codegen.
llvm-svn: 280071
Diffstat (limited to 'llvm')
-rw-r--r-- | llvm/docs/LangRef.rst | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/docs/LangRef.rst b/llvm/docs/LangRef.rst index 4f4d0cba95e..83573be24d6 100644 --- a/llvm/docs/LangRef.rst +++ b/llvm/docs/LangRef.rst @@ -3385,6 +3385,9 @@ constraints, e.g. "``~{eax}``". The one exception is that a clobber string of memory locations -- not only the memory pointed to by a declared indirect output. +Note that clobbering named registers that are also present in output +constraints is not legal. + Constraint Codes """""""""""""""" |