[LLVMdev] Prevent instruction elimination

Xinfinity xinfinity_a at yahoo.com
Mon Oct 25 07:49:26 PDT 2010


Hi,


John Criswell-4 wrote:
> 
>  
> You may want to use LLVM Metadata features.  Search for MDNode in the 
> doxygen docs for some information on how to create metadata.
> 
> 

I use metadata information in this way:
     unsigned mk = Context.getMDKindID(mdtype);     
     Value  *V = MDString::get(Context,StringRef(str));   
     MDNode* n = MDNode::get(Context, &V, 1);
     inst->setMetadata(mk, n); 

Maybe it is a deprecated way of handling metadata, as I started with this
code from LLVM 2.6. 
But what I need is a dummy instruction ("inst" in the above example), that
has a minimal impact. I want the code to be optimized (almost) as this
instruction would not exist.



John Criswell-4 wrote:
> 
> 
> Alternatively, you can use calls to external functions.  These are 
> seldomly optimized since optimizations assume that external functions 
> can have undetermined side effects.
> 
> -- John T.
> 
> 

I should avoid calls to some functions, as they would be considered a
dependence if they are inserted in the body of a loop, and would definitely
affect the optimization step. I also thought about inserting an inline
assembly that only contains a comment and carries metadata info. But this is
also a call, so it influences the optimizers.

Alexandra

-- 
View this message in context: http://old.nabble.com/Prevent-instruction-elimination-tp30046067p30048639.html
Sent from the LLVM - Dev mailing list archive at Nabble.com.




More information about the llvm-dev mailing list