Hello, Chris. > First, you are changing the LLVM language. When you do this, please > submit a patch for langref before you write code :). In this case, > I'd like to see the patch so that I understand the semantics of what > you're proposing. Ok. However language semantics was already discussed with you and Reid some time ago :) The syntax itself is:
declare %i32 foo(...) alias "bar" > Do aliases only apply to function-like things, or can they also apply > to global vars? Aliases are "hacks". I don't see any field, where they can be useful, except gcc support. GCC doesn't allow variable aliases and I don't know how they should look (and work!). That's why I'm focusing on function aliases only. > This needs a block comment above it for doxygen, explaining what it > is. Also, you have FunctionAlias. Is there also a > GlobalVariableAlias? Why does this inherit from Function? Can > FunctionAliases have a body? If not, it shouldn't inherit from > Function. FunctionAliases are actually Functions declarations with some "extra" information. That's why they should be inherited from Function. Another reason: this will allow all optimization passes think about FunctionAliases as Functions and use casts if they actually need alias target > + if (TAI->getSetDirective()) { > + if (FunctionAliases.begin() != FunctionAliases.end()) > if (!FunctionAliases.empty()) I saw such idiom many time in the current LLVM code. That's why I selected it :) > Other stuff: should the verifier reject aliases with no name? Yes, I've forgotten about this. > How do aliases interact with the Linker? Linker patch was included. Currently we're linking two aliases only if they have same name and go to the same destination. -- With best regards, Anton Korobeynikov. Faculty of Mathematics & Mechanics, Saint Petersburg State University. _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits