Displaying 20 results from an estimated 3000 matches similar to: "variable instruction latency using itineraries"
2015 Nov 07
2
Is there a way to convert between SchedMachineModel and Itineraries?
Is there a way to convert between SchedMachineModel and Itineraries?
I was trying to write a very simple VLIW packetizer (Hexagon was my
starting point). It turns out that current DFAPacketizer is using
itineraries, but my schedule is based on SchedMachineModel (I was
recommended to use it since the itineraries are being phased out). I was
wondering if there is an automated tool that would
2016 Jan 06
2
DFAPacketizer, Scheduling and LoadLatency
On Tue, Nov 17, 2015 at 11:15 AM, Krzysztof Parzyszek <
kparzysz at codeaurora.org> wrote:
> On 11/17/2015 12:26 PM, Rail Shafigulin wrote:
>
>>
>> I tried setting
>> let mayLoad = 1 {
>> class InstrLD .... {
>> }
>> }
>>
>> But that didn't seem to work. When I looked at the debug output the
>> latency for the load
2015 Nov 09
2
Is there a way to convert between SchedMachineModel and Itineraries?
----- Original Message -----
> From: "Rail Shafigulin via llvm-dev" <llvm-dev at lists.llvm.org>
> To: "llvm-dev" <llvm-dev at lists.llvm.org>
> Sent: Monday, November 9, 2015 10:09:07 AM
> Subject: Re: [llvm-dev] Is there a way to convert between SchedMachineModel and Itineraries?
>
>
> Anybody? Does anyone at all know how to do it?
There is
2016 Feb 05
3
New register class and patterns
>
> No, this would have to be a void side effecting instruction which is a bit
> different.
What do you mean by "void side effecting instruction"? I'm not sure I
fully understand what you mean.
The flag register is an implicit register added to the selected
> MachineInstr's operands.
Is this something that is always done by LLVM? Is it me who is telling to
LLVM
2016 Mar 05
2
Enable / Disable a processor feature
I'm trying to enable/disable a target feature through clang.
Here is how my target looks like
// Esencia subtarget features
//===----------------------------------------------------------------------===//
def FeatureMul : SubtargetFeature<"mul", "HasMul", "true",
"Enable hardware multiplier">;
def FeatureDiv
2016 Mar 30
3
infer correct types from the pattern
i'm getting a
Could not infer all types in pattern!
error in my backend. it is happening on the following instruction:
VGETITEM: (set GPR:{i32:f32}:$rD, (extractelt:{i32:f32}
VR:{v4i32:v4f32}:$rA, GPR:i32:$rB)).
how do i make it use appropriate types? in other words if it is f32 then
use v4v32 and if it is i32 then use v4f32. i'm not sure even where to start?
any help is appreciated.
2015 Nov 09
4
Is there a way to convert between SchedMachineModel and Itineraries?
> On Nov 9, 2015, at 10:49 AM, Rail Shafigulin <rail at esenciatech.com> wrote:
>
> On Mon, Nov 9, 2015 at 10:31 AM, Hal Finkel <hfinkel at anl.gov <mailto:hfinkel at anl.gov>> wrote:
> ----- Original Message -----
> > From: "Rail Shafigulin via llvm-dev" <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>>
> > To:
2013 Apr 30
1
[LLVMdev] Instruction Scheduling - migration from v3.1 to v3.2
On Apr 26, 2013, at 3:53 AM, Martin J. O'Riordan <Martin.ORiordan at movidius.com> wrote:
> I am migrating the llvm/clang derived compiler for our processor from the
> v3.1 to v3.2 codebase. This has mostly gone well except that instruction
> latency scheduling is no longer happening.
>
> The people who implemented this previously sub-classed 'ScheduleDAGInstrs'
2015 Nov 17
2
DFAPacketizer, Scheduling and LoadLatency
> In particular, the LoadLatency is used in defaultDefLatency:
>
> /// Return the default expected latency for a def based on it's opcode.
> unsigned TargetInstrInfo::defaultDefLatency(
> const MCSchedModel &SchedModel, const MachineInstr *DefMI) const {
> if (DefMI->isTransient())
> return 0;
> if (DefMI->mayLoad())
> return
2016 Apr 04
7
sum elements in the vector
My target has an instruction that adds up all elements in the vector and
stores the result in a register. I'm trying to implement it in my compiler
but I'm not sure even where to start.
I did look at other targets, but they don't seem to have anything like it (
I could be wrong. My experience with LLVM is limited, so if I missed it,
I'd appreciate if someone could point it out ).
2016 May 28
4
sum elements in the vector
Hi Rail,
Below 2 revisions might be of your interest which Detect SAD patterns and
emit psadbw instructions on X86.:
http://reviews.llvm.org/D14840
http://reviews.llvm.org/D14897
Intrinsics related to absdiff revisons :
http://reviews.llvm.org/D10867
http://reviews.llvm.org/D11678
Hope this helps.
Regards,
Suyog
On Sat, May 28, 2016 at 4:20 AM, Rail Shafigulin via llvm-dev <
llvm-dev at
2016 Jan 29
2
Specifying DAG patterns in the instruction
On Thu, Jan 28, 2016 at 8:34 PM, Dylan McKay <dylanmckay34 at gmail.com> wrote:
> Try visualising the DAG like this.
>
> ```
> ---- GPR:$rA
> /
> set GPR:$rd ---- add
> \
> ---- GPR:$rB
> ```
>
> Each instruction forms a DAG with its operands being subnodes.
>
>
2015 Nov 12
2
Way to specify instruction latency in itinerary scheduling model
Does anybody know how to specify instruction latency in the itinerary
scheduling model? For some reason no matter what I do I get a latency of 1.
--
Rail
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20151111/161bd6cb/attachment.html>
2016 Feb 02
2
New register class and patterns
> On Feb 1, 2016, at 16:53, Rail Shafigulin <rail at esenciatech.com> wrote:
>
>
>
> On Fri, Jan 29, 2016 at 10:03 PM, Matt Arsenault <arsenm2 at gmail.com <mailto:arsenm2 at gmail.com>> wrote:
>
> > On Jan 29, 2016, at 13:25, Rail Shafigulin via llvm-dev <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote:
> >
>
2016 May 12
3
sum elements in the vector
> why in order to add this particular instruction (sum elements in a vector) I need to add an insrinsic?
Adding intrinsic is not the only way, it is one of the way and user WILL-NOT be required to invoke
It specifically.
Currently LLVM does not have any instruction to directly represent “sum of elements in a vector” and
generate your particular instruction.However, you can do it without
2016 May 16
4
sum elements in the vector
This would be really cool. We have several instructions that perform horizontal vector operations, and have to use built-ins to select them as there is no easy way of expressing them in a TD file. Some like SUM for a ‘v4i32’ are easy enough to express with a pattern fragment, SUM ‘v8i16’ takes TableGen a long time to compute, but SUM ‘v16i8’ resulted in TableGen disappearing into itself for
2016 May 02
3
enable/disable features through clang
Is there a way to enable/disable target features through clang?
I found this, https://github.com/avr-llvm/llvm/issues/9, but this seems to
be talking about llc -mattr=+feature1,-feature2...
Is there something equivalent for clang?
--
Rail Shafigulin
Software Engineer
Esencia Technologies
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
2016 May 27
0
sum elements in the vector
Hi Shahid.
Do you mind providing a concrete example of X86 code where an intrinsic was
added (preferrable with filenames and line numbers)? I'm having difficulty
tracking down the steps you provided.
Any help is appreciated.
On Mon, Apr 4, 2016 at 9:02 PM, Shahid, Asghar-ahmad <
Asghar-ahmad.Shahid at amd.com> wrote:
> Hi Rail,
>
>
>
> We had done this for generation
2016 May 18
3
sum elements in the vector
Hi Rail,
We used a very simple pattern expansion (actually, not a pattern fragment). For example, for AND, ADD (horizontal sum), OR and XOR of 4 elements we use something like the following TableGen structure:
class HORIZ_Op4<SDNode opc, RegisterClass regVT, ValueType rt, ValueType vt, string asmstr> :
SHAVE_Instr<(outs regVT:$dst), (ins VRF128:$src),
2016 Mar 18
4
generate vectorized code
On Fri, Mar 18, 2016 at 2:03 PM, Rail Shafigulin <rail at esenciatech.com>
wrote:
> On Fri, Mar 18, 2016 at 1:53 PM, Mehdi Amini <mehdi.amini at apple.com>
> wrote:
>
>>
>> On Mar 18, 2016, at 1:47 PM, Rail Shafigulin <rail at esenciatech.com>
>> wrote:
>>
>> Yes this IR does not build or shuffle any vector. Try to write a function