[llvm-commits] [llvm-gcc-4.2] r76208 - in /llvm-gcc-4.2/trunk/gcc: llvm-backend.cpp llvm-convert.cpp

Anton Korobeynikov anton at korobeynikov.info
Fri Jul 17 12:41:24 PDT 2009


Hello, Eli

> Consistent with what?  From the description, this sounds like it
> breaks local register variables...
Sorry, I was not clear. The behaviour is only changed for local
register variables which have hard register tied to them, e.g.
register int* foo __asm__("bar");

The problem is with the stuff like

void foo(void) {
  register int* bar __asm__("baz");
  quux(*bar, bar+1);
}

We completely ignored asm specifier previously. Currently we're
emitting inline asm for loads / stores to such variables (just blank
inline asm node with input / output tied to the specified register and
variable).

-- 
With best regards, Anton Korobeynikov
Faculty of Mathematics and Mechanics, Saint Petersburg State University




More information about the llvm-commits mailing list