search for: unmodeledsideeffects

Displaying 20 results from an estimated 22 matches for "unmodeledsideeffects".

2012 Aug 21
8
[LLVMdev] Let's get rid of neverHasSideEffects
All, TableGen likes to infer the MCID::UnmodeledSideEffects flag from an instruction's pattern. When an instruction doesn't have a pattern, it is assumed to have side effects. It's possible to override this behavior by setting neverHasSideEffects = 1. It was originally the intention that most instructions have patterns, but that's not the...
2012 Aug 21
0
[LLVMdev] Let's get rid of neverHasSideEffects
On Aug 21, 2012, at 2:02 PM, Jakob Stoklund Olesen <stoklund at 2pi.dk> wrote: > All, > > TableGen likes to infer the MCID::UnmodeledSideEffects flag from an instruction's pattern. When an instruction doesn't have a pattern, it is assumed to have side effects. Hi Jakob, I don't understand what you're saying. Are you proposing that all properties (may load, store, side effects) be explicitly added to all instructions, and...
2012 Aug 21
0
[LLVMdev] Let's get rid of neverHasSideEffects
On Tue, Aug 21, 2012 at 2:02 PM, Jakob Stoklund Olesen <stoklund at 2pi.dk>wrote: > All, > > TableGen likes to infer the MCID::UnmodeledSideEffects flag from an > instruction's pattern. When an instruction doesn't have a pattern, it is > assumed to have side effects. > > It's possible to override this behavior by setting neverHasSideEffects = 1. > > It was originally the intention that most instructions have patte...
2012 Aug 21
0
[LLVMdev] Let's get rid of neverHasSideEffects
On Aug 21, 2012, at 2:02 PM, Jakob Stoklund Olesen <stoklund at 2pi.dk> wrote: > All, > > TableGen likes to infer the MCID::UnmodeledSideEffects flag from an instruction's pattern. When an instruction doesn't have a pattern, it is assumed to have side effects. > > It's possible to override this behavior by setting neverHasSideEffects = 1. > > It was originally the intention that most instructions have patterns, but...
2018 Jan 09
5
[cfe-dev] Why is #pragma STDC FENV_ACCESS not supported?
...t we should be using implicit control register dependencies, which will at least prevent moving floating-point operations across instructions that e.g. change rounding modes. However, the main property we need to model is that floating-point operations may *trap*. I guess this can be done using UnmodeledSideEffects, but I'm not quite clear on how to make this dependent on whether or not a "strict" operation is requested (without duplicating all the instruction patterns ...). Once we do use something like UnmodeledSideEffects, I think MachineIR passes should handle everything correctly; in the e...
2011 Jun 24
1
[LLVMdev] unmodeled side effects
Hi A bunch of instructions that I have defined in tablegen files get tagged with unmodeledSideEffect property. I have defined these instructions with no corresponding dag patterns. Is there a way i can avoid this property and say they do not have any side effects thanks shrey
2018 Jan 09
1
[cfe-dev] Why is #pragma STDC FENV_ACCESS not supported?
...t control register dependencies, which will at least > prevent moving floating-point operations across instructions that e.g. > change rounding modes. However, the main property we need to model is > that floating-point operations may *trap*. I guess this can be done > using UnmodeledSideEffects, but I'm not quite clear on how to make this > dependent on whether or not a "strict" operation is requested (without > duplicating all the instruction patterns ...). > Once we do use something like UnmodeledSideEffects, I think MachineIR > passes should handle...
2018 Jan 09
4
[cfe-dev] Why is #pragma STDC FENV_ACCESS not supported?
...that we should be using implicit control register dependencies, which will at least prevent moving floating-point operations across instructions that e.g. change rounding modes. However, the main property we need to model is that floating-point operations may *trap*. I guess this can be done using UnmodeledSideEffects, but I'm not quite clear on how to make this dependent on whether or not a "strict" operation is requested (without duplicating all the instruction patterns ...). > > Once we do use something like UnmodeledSideEffects, I think MachineIR passes should handle everything correctly...
2018 Feb 09
0
[cfe-dev] Why is #pragma STDC FENV_ACCESS not supported?
...that we should be using implicit control register dependencies, which will at least prevent moving floating-point operations across instructions that e.g. change rounding modes. However, the main property we need to model is that floating-point operations may *trap*. I guess this can be done using UnmodeledSideEffects, but I'm not quite clear on how to make this dependent on whether or not a "strict" operation is requested (without duplicating all the instruction patterns ...). Once we do use something like UnmodeledSideEffects, I think MachineIR passes should handle everything correctly; in the e...
2018 Jan 09
0
[cfe-dev] Why is #pragma STDC FENV_ACCESS not supported?
...that we should be using implicit control register dependencies, which will at least prevent moving floating-point operations across instructions that e.g. change rounding modes. However, the main property we need to model is that floating-point operations may *trap*. I guess this can be done using UnmodeledSideEffects, but I'm not quite clear on how to make this dependent on whether or not a "strict" operation is requested (without duplicating all the instruction patterns ...). Once we do use something like UnmodeledSideEffects, I think MachineIR passes should handle everything correctly; in the e...
2018 Jan 10
0
[cfe-dev] Why is #pragma STDC FENV_ACCESS not supported?
...that we should be using implicit control register dependencies, which will at least prevent moving floating-point operations across instructions that e.g. change rounding modes. However, the main property we need to model is that floating-point operations may *trap*. I guess this can be done using UnmodeledSideEffects, but I'm not quite clear on how to make this dependent on whether or not a "strict" operation is requested (without duplicating all the instruction patterns ...). Once we do use something like UnmodeledSideEffects, I think MachineIR passes should handle everything correctly; in the e...
2018 Jan 09
2
[cfe-dev] Why is #pragma STDC FENV_ACCESS not supported?
...that we should be using implicit control register dependencies, which will at least prevent moving floating-point operations across instructions that e.g. change rounding modes. However, the main property we need to model is that floating-point operations may *trap*. I guess this can be done using UnmodeledSideEffects, but I'm not quite clear on how to make this dependent on whether or not a "strict" operation is requested (without duplicating all the instruction patterns ...). Once we do use something like UnmodeledSideEffects, I think MachineIR passes should handle everything correctly; in the e...
2018 Feb 09
1
[cfe-dev] Why is #pragma STDC FENV_ACCESS not supported?
...that we should be using implicit control register dependencies, which will at least prevent moving floating-point operations across instructions that e.g. change rounding modes. However, the main property we need to model is that floating-point operations may *trap*. I guess this can be done using UnmodeledSideEffects, but I'm not quite clear on how to make this dependent on whether or not a "strict" operation is requested (without duplicating all the instruction patterns ...). Once we do use something like UnmodeledSideEffects, I think MachineIR passes should handle everything correctly; in the e...
2015 Aug 12
2
ARM: Predicated returns considered analyzable?
...output (ARMGenInstrInfo.inc): { 2399, 5, 1, 4, 355, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Return)|(1ULL<<MCID::Barrier)|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::Predicable)|(1ULL<<MCID::Terminator)|(1ULL<<MCID::Variadic)|(1ULL<<MCID::UnmodeledSideEffects)|(1ULL<<MCID::ExtraDefRegAllocReq), 0x0ULL, nullptr, nullptr, OperandInfo52, -1 ,nullptr }, // Inst #2399 = t2LDMIA_RET The test isTerminator only checks the MCInstrDesc: /// Various passes use this to insert code into the bottom of a basic block, /// but before control flow occu...
2017 Aug 21
3
RFC/bikeshedding: Separation of instruction and pattern definitions in LLVM backends
On 21 August 2017 at 11:53, Daniel Sanders <daniel_l_sanders at apple.com> wrote: > One thing to be aware of with this is that (IIRC) tablegen uses the pattern to infer things about the pattern. One example I vaguely remember is that an empty pattern would result in the same effect as hasSideEffects=1 and I think there were others. Thanks for the note - excellent point. Looking at
2018 Mar 01
9
[RFC] llvm-mca: a static performance analysis tool
...ipeline JFPU0. The third (and last) section of the report shows the latency and reciprocal throughput of every instruction in the sequence. That section also reports extra information related to the number of micro opcodes, and opcode properties (i.e. 'MayLoad', 'MayStore' and 'UnmodeledSideEffects'). The resource pressure view helps with identifying bottlenecks caused by high usage of specific hardware resources. Situations with resource pressure mainly concentrated on a few resources should, in general, be avoided. Ideally, pressure should be uniformly distributed between multiple re...
2018 Mar 02
0
[RFC] llvm-mca: a static performance analysis tool
...st) section of the report shows the latency and > reciprocal > throughput of every instruction in the sequence. That section also > reports extra > information related to the number of micro opcodes, and opcode > properties (i.e. > 'MayLoad', 'MayStore' and 'UnmodeledSideEffects'). > > The resource pressure view helps with identifying bottlenecks caused > by high > usage of specific hardware resources.  Situations with resource > pressure mainly > concentrated on a few resources should, in general, be avoided. Ideally, > pressure should be unifor...
2018 Mar 02
0
[RFC] llvm-mca: a static performance analysis tool
...he L1D). You’re optimistic here, which is good, but pessimistic with aliasing. > Class MCInstrDesc in LLVM doesn't know about serializing operations, nor > memory-barrier like instructions. LSUnit conservatively assumes that an > instruction which has both 'MayLoad' and 'UnmodeledSideEffects' behaves like a > "soft" load-barrier. That means, it serializes loads without forcing a flush of > the load queue. Similarly, instructions flagged with both 'MayStore' and > 'UnmodeledSideEffects' are treated like store barriers. A full memory barrier >...
2018 Mar 02
0
[RFC] llvm-mca: a static performance analysis tool
...(and last) section of the report shows the latency and reciprocal > throughput of every instruction in the sequence. That section also reports > extra > information related to the number of micro opcodes, and opcode properties > (i.e. > 'MayLoad', 'MayStore' and 'UnmodeledSideEffects'). > > The resource pressure view helps with identifying bottlenecks caused by > high > usage of specific hardware resources. Situations with resource pressure > mainly > concentrated on a few resources should, in general, be avoided. Ideally, > pressure should be uniform...
2015 Aug 10
2
ARM: Predicated returns considered analyzable?
Hello, The function ARMBaseInstrInfo::AnalyzeBranch contains the following piece of code: } else if (I->isReturn()) { // Returns can't be analyzed, but we should run cleanup. CantAnalyze = !isPredicated(I); } else { This could lead to cases where for a block that ends with a conditional return, AnalyzeBranch returns false (i.e. analyzed), both TBB and FBB are