search for: tcc_expensive

Displaying 6 results from an estimated 6 matches for "tcc_expensive".

2016 Jan 05
3
TargetTransformInfo getOperationCost uses
...d division doesn't prevent the loop from being unrolled, because it isn't actually considered when loop unrolling. The loop unrolled uses CodeMetrics, which via getUserCost ultimately uses TargetTransformInfoImplBase::getOperationCost(), which returns various fixed values (4 for division (TCC_Expensive, but this isn't nearly expensive enough)). getOperationCost only uses the type and opcode to estimate, so it doesn't require a value. No target overrides this. The hooks that targets do really implement, like getArithmeticInstrCost, use some information about the operands so require a val...
2019 Sep 30
3
[cfe-dev] CFG simplification question, and preservation of branching in the original code
...code that I posted before. This IR code, including the presence of expensive shifts ( %a.lobit = lshr i32 %a, 31) is generated when -mllvm -phi-node-folding-threshold=1 is specified in the command line, or when the Target implements getOperationCost(unsigned Opcode, Type *Ty, Type *OpTy) to return TCC_Expensive for operator types that are bigger than the default target register size. > > > > ; ModuleID = 'main.c' > source_filename = "main.c" > target datalayout = "e-m:e-p:16:16-i32:16-i64:16-f32:16-f64:16-a:8-n8:16-S16" > target triple = "msp430"...
2019 Sep 30
2
[cfe-dev] CFG simplification question, and preservation of branching in the original code
...efore. This IR code, including the presence of > expensive shifts ( %a.lobit = lshr i32 %a, 31) is generated when -mllvm > -phi-node-folding-threshold=1 is specified in the command line, or when the > Target implements getOperationCost(unsigned Opcode, Type *Ty, Type *OpTy) > to return TCC_Expensive for operator types that are bigger than the default > target register size. > > > > ; ModuleID = 'main.c' > source_filename = "main.c" > target datalayout = > "e-m:e-p:16:16-i32:16-i64:16-f32:16-f64:16-a:8-n8:16-S16" > target triple = "msp...
2019 Sep 29
2
[cfe-dev] CFG simplification question, and preservation of branching in the original code
On Sun, Sep 29, 2019 at 3:35 PM Joan Lluch via llvm-dev <llvm-dev at lists.llvm.org> wrote: > > Hi Sanjay, > > Actually, the CodeGenPrepare::optimizeSelectInst is not doing the best it could do in some circumstances: The case of “OptSize" for targets not supporting Select was already mentioned to be detrimental. > > For targets that actually have selects, but branches
2019 Oct 01
3
[cfe-dev] CFG simplification question, and preservation of branching in the original code
...code that I posted before. This IR code, including the presence of expensive shifts ( %a.lobit = lshr i32 %a, 31) is generated when -mllvm -phi-node-folding-threshold=1 is specified in the command line, or when the Target implements getOperationCost(unsigned Opcode, Type *Ty, Type *OpTy) to return TCC_Expensive for operator types that are bigger than the default target register size. >>> >>> >>> >>> ; ModuleID = 'main.c' >>> source_filename = "main.c" >>> target datalayout = "e-m:e-p:16:16-i32:16-i64:16-f32:16-f64:16-a:8-n8:16...
2019 Oct 03
2
[cfe-dev] CFG simplification question, and preservation of branching in the original code
...code that I posted before. This IR code, including the presence of expensive shifts ( %a.lobit = lshr i32 %a, 31) is generated when -mllvm -phi-node-folding-threshold=1 is specified in the command line, or when the Target implements getOperationCost(unsigned Opcode, Type *Ty, Type *OpTy) to return TCC_Expensive for operator types that are bigger than the default target register size. >>>> >>>> >>>> >>>> ; ModuleID = 'main.c' >>>> source_filename = "main.c" >>>> target datalayout = "e-m:e-p:16:16-i32:16-i64:16...