From 002572318938f74bb0177dd83d24a59b1cdd013d Mon Sep 17 00:00:00 2001 From: Peter Zotov Date: Tue, 30 Aug 2016 10:48:31 +0000 Subject: 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 --- llvm/docs/LangRef.rst | 3 +++ 1 file changed, 3 insertions(+) (limited to 'llvm/docs/LangRef.rst') 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 """""""""""""""" -- cgit v1.2.3