[llvm-dev] target triple in 3.8

Mehdi Amini via llvm-dev llvm-dev at lists.llvm.org
Fri Feb 19 12:28:11 PST 2016


Have you added the TTI as I showed? It is not clear from you excerpt below.

-- 
Mehdi
 


> On Feb 19, 2016, at 12:24 PM, Frank Winter <fwinter at jlab.org> wrote:
> 
> I added your suggestion and am using this now
> 
> llvm::legacy::FunctionPassManager *functionPassManager = new llvm::legacy::FunctionPassManager(Mod);
> 
> llvm::PassRegistry &registry = *llvm::PassRegistry::getPassRegistry();
> initializeScalarOpts(registry);
> 
> functionPassManager->add( new llvm::TargetLibraryInfoWrapperPass(llvm::TargetLibraryInfoImpl(targetMachine->getTargetTriple())) );
> 
> 
> still,
> 
> LV: The Widest register is: 32 bits.
> 
> 
> so, unfortunately no change.
> 
> If I dump the Module, it starts with:
> 
> ; ModuleID = 'module'
> target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
> 
> 
> Does this datalayout look good for x86-64 AVX ?
> 
> 
> Frank
> 
> 
> 
> On 02/19/2016 03:14 PM, Mehdi Amini wrote:
>> Do you have the TTI in your pass manager?
>> 
>> Something like:
>> 
>>     // Add the TTI (required to inform the vectorizer about register size for
>>     // instance)
>>     PM.add(createTargetTransformInfoWrapperPass(TM->getTargetIRAnalysis()));
>> 
>> Also, are you populating the pass manager using the passmanagerbuilder? You still need the TLI:
>> 
>>     // Populate the PassManager
>>     PassManagerBuilder PMB;
>>     PMB.LibraryInfo = new TargetLibraryInfoImpl(TM->getTargetTriple());
>> ....
>> 
>> 
>> Or without the PassManagerBuild, something like:
>> 
>>     PM.add(new TargetLibraryInfoWrapperPass(TargetLibraryInfoImpl(TM->getTargetTriple())));
>> 
>> 
> 
> 



More information about the llvm-dev mailing list