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

Reply via email to