On Apr 18, 2007, at 4:53 PM, Anton Korobeynikov wrote:
Hello Everyone.
This is LLVM part of patch, which enable function aliases for LLVM.
The
syntax is pretty simple: it just "mimics" the "section" keyword. I'm
currently working on gcc part of the patch. Please note, that patch
breaks bytecode format (llvm-dev message will follow).
Documentation updates & testcases will be added just after this patch
landed.
Questions questions :)
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. The BC format documents can come later after it
lands. Do aliases only apply to function-like things, or can they
also apply to global vars?
Specific code comments:
+class FunctionAlias : public Function {
+private:
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.
Minor stuff:
+ std::string getTarget() const { return Target; }
Should return a const& to the string.
+ if (TAI->getSetDirective()) {
+ if (FunctionAliases.begin() != FunctionAliases.end())
if (!FunctionAliases.empty())
+ FunctionAlias* SA = dyn_cast<FunctionAlias>(Src);
+ if (SA) {
if (FunctionAlias* SA = dyn_cast<FunctionAlias>(Src)) {
Other stuff: should the verifier reject aliases with no name? How do
aliases interact with the Linker?
I'd like Reid to review the BC reader/writer changes.
Please resend the patch with updates (particularly to langref).
Thanks Anton, it will be great to get alias support!
-Chris
_______________________________________________
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits