[llvm-commits] [llvm] r56937 - in /llvm/trunk: include/llvm/Target/TargetOptions.h lib/CodeGen/LLVMTargetMachine.cpp lib/CodeGen/LoopAligner.cpp lib/Target/PowerPC/AsmPrinter/PPCAsmPrinter.cpp lib/Target/TargetMachine.cpp lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp lib/Target/X86/AsmPrinter/X86IntelAsmPrinter.cpp lib/Target/X86/X86ISelDAGToDAG.cpp test/CodeGen/X86/vec_shuffle-23.ll test/CodeGen/X86/vec_shuffle-24.ll

Duncan Sands baldrick at free.fr
Fri Oct 3 00:15:36 PDT 2008


> >> +  const Function *F = MF.getFunction();
> >> +  if (!F->isDeclaration() && F- 
> >> >hasFnAttr(Attribute::OptimizeForSize))
> >> +    return false;
> >
> > why the test !F->isDeclaration()?  Is this because if you declare
> > a function F in a file which is being optimized for size, then
> > the declaration gets the OptimizeForSize attribute, even though
> > the function definition may not (because in another file compiled
> > differently)?
> >
> > If so, how about not setting the OptimizeForSize attribute on
> > declarations in the first place?
> 
> That's what we do. Initially, in notes implementation we had assertion  
> check somewhere to catch this.
> 
> > After all, there doesn't seem
> > to be much point to it if it's going to be ignored everywhere
> > anyway - indeed it's just a trap to fall into: checking for a
> > declaration is easily forgotten.
> > Another possibility is to have hasFnAttr check itself whether
> > F is a declaration, and not return true in that case.
> 
> That's what I did. But, Chris preferred that clients check F- 
>  >isDeclaration().

Don't listen to that Chris guy, what does he know! :)

Ciao,

Duncan.



More information about the llvm-commits mailing list