Displaying 20 results from an estimated 1000 matches similar to: "[LLVMdev] [RFC] Add Intel TSX HLE Support"
2013 Feb 19
2
[LLVMdev] [RFC] Add Intel TSX HLE Support
Hi All,
I'd like to add HLE support in LLVM/clang consistent to GCC's style [1]. HLE from Intel TSX [2] is legacy compatible instruction set extension to
specify transactional region by adding XACQUIRE and XRELEASE prefixes. To support that, GCC chooses the approach by extending the memory order
flag in __atomic_* builtins with target-specific memory model in high bits (bit 31-16 for
2013 Feb 19
0
[LLVMdev] [RFC] Add Intel TSX HLE Support
Here is the patch
0003-Add-XACQ-XREL-prefix-and-encoding-asm-printer-suppor.patch
Yours
- Michael
On Tue, 2013-02-19 at 14:07 -0800, Michael Liao wrote:
> Hi All,
>
> I'd like to add HLE support in LLVM/clang consistent to GCC's style [1].
> HLE from Intel TSX [2] is legacy compatible instruction set extension to
> specify transactional region by adding XACQUIRE and
2013 Feb 19
0
[LLVMdev] [RFC] Add Intel TSX HLE Support
Here is the patch 0004-Enable-HLE-code-generation.patch
Yours
- Michael
On Tue, 2013-02-19 at 14:07 -0800, Michael Liao wrote:
> Hi All,
>
> I'd like to add HLE support in LLVM/clang consistent to GCC's style [1].
> HLE from Intel TSX [2] is legacy compatible instruction set extension to
> specify transactional region by adding XACQUIRE and XRELEASE prefixes.
> To
2013 Feb 19
0
[LLVMdev] [RFC] Add Intel TSX HLE Support
Here is the patch 0002-Add-HLE-target-feature.patch
Yours
- Michael
On Tue, 2013-02-19 at 14:07 -0800, Michael Liao wrote:
> Hi All,
>
> I'd like to add HLE support in LLVM/clang consistent to GCC's style [1].
> HLE from Intel TSX [2] is legacy compatible instruction set extension to
> specify transactional region by adding XACQUIRE and XRELEASE prefixes.
> To support
2013 Feb 19
0
[LLVMdev] [RFC] Add Intel TSX HLE Support
Hi Michael,
Why do you want to add transactional memory support to LLVM ? Can't you implement transactional memory using a library call ? Judging by the number of patches it looks like a major change to LLVM, and I am not sure that I understand the motivation for including it in LLVM.
Thanks,
Nadav
On Feb 19, 2013, at 11:52 AM, Michael Liao <michael.liao at intel.com> wrote:
2013 Feb 28
1
[LLVMdev] [RFC] Add Intel TSX HLE Support
Nadav, I've been reading over the patches and I was wondering if you could elaborate your concerns here. I share your goal of reducing compilation time regressions for users that don't care about new feature X. From my very quick glance over the patches, I didn't see anything I couldn't opt out of. Maybe we can talk about specifics and figure out a way to make these changes not
2009 Jul 31
4
[LLVMdev] RFC: SDNode Flags
Right now the MemSDNode keeps a volatile bit in the SubclassData to mark
volatile memory operations.
We have some changes we'd like to push back that adds a NonTemporal flag
to MemSDNode to mark instructions where movnt (on x86) and other goodness
can happen (we'll also add the TableGen patterns to properly select movnt).
In our tree we simply added another flag to the MemSDNode
2009 Aug 01
0
[LLVMdev] RFC: SDNode Flags
On Jul 31, 2009, at 11:26 AM, David Greene wrote:
> Right now the MemSDNode keeps a volatile bit in the SubclassData to
> mark
> volatile memory operations.
>
> We have some changes we'd like to push back that adds a NonTemporal
> flag
> to MemSDNode to mark instructions where movnt (on x86) and other
> goodness
> can happen (we'll also add the TableGen
2010 Feb 11
1
[LLVMdev] Metadata [volatile bug?]
On Thursday 11 February 2010 14:44:23 Dan Gohman wrote:
> > Then we can't use it to hold a non-temporal flag. The operand might be
> > non-temporal in one context but it may not be in another.
>
> Sharing only happens when two instructions have the "same" memory
> reference info. You just need to make sure that the non-temporal
> flag is significant.
2010 Feb 11
5
[LLVMdev] Metadata
On Feb 11, 2010, at 12:07 PM, David Greene wrote:
> On Thursday 11 February 2010 14:02:13 Dan Gohman wrote:
>
>>>> Putting a bit (or multiple bits) in MachineMemOperand for this
>>>> would also make sense.
>>>
>>> Is there any chance a MachineMemOperand will be shared by multiple
>>> instructions?
>>
>> Yes.
>
> Then
2009 Aug 03
2
[LLVMdev] RFC: SDNode Flags
On Saturday 01 August 2009 15:12, Dan Gohman wrote:
> LoadSDNode, which inherits from MemSDNode is the largest
> SDNode. With the current SDNode allocation strategy, making it
> bigger will increase the allocation needed for all nodes.
Ok.
> > new (N) LoadSDNode(..., isVolatile|isNonTemporal);
> >
> > Thoughts?
>
> This sounds reasonable. I'd suggest
2009 Aug 03
0
[LLVMdev] RFC: SDNode Flags
I also want a way to add target specific flag to a SDNode (which
should be transferred to MachineInstr). For example, on x86 lots of
opcodes have *lock* variants. Right now, these are separate
instructions. I'd prefer to make it into a target specific flag that
can be toggled by some sort of post-isel action routine.
One way to handle this might be to expand the use of SubclassData.
2010 Feb 12
0
[LLVMdev] Metadata [volatile bug?]
On Feb 11, 2010, at 3:15 PM, David Greene wrote:
> On Thursday 11 February 2010 14:44:23 Dan Gohman wrote:
>
>>> Then we can't use it to hold a non-temporal flag. The operand might be
>>> non-temporal in one context but it may not be in another.
>>
>> Sharing only happens when two instructions have the "same" memory
>> reference info. You
2013 Aug 23
1
[LLVMdev] Incredible effects of extending AtomicSDNode::Ops
Hello,
As part of enhancing atomic operations in the ARM backend, we need to
extend the Ops array in AtomicSDNode.
This array is a private member of AtomicSDNode, so it's only
accessible within 85 lines of code, none of which have anything to do
with its size. Therefore, increasing the size of Ops shouldn't at all
affect the behaviour of LLVM, we supposed.
Much to our surprise, this
2012 Oct 29
3
[LLVMdev] [llvm-commits] [llvm] r162770 - in /llvm/trunk: include/llvm/CodeGen/MachineOperand.h lib/CodeGen/MachineInstr.cpp
Jakob and anyone else who might be interested...
Base on this patch back in August, I sense some need to double check with
you whether it is OK to start making a heavy use of MachineOperand
TargetFlags?
We do seem to have a compelling reason for it in Hexagon, and I wanted to
make sure that it is OK with everyone. I plan to use it for attributing
target specific info to MOs and in more general
2014 Mar 07
3
[LLVMdev] [RFC] Add second "failure" AtomicOrdering to cmpxchg instruction
Hi all,
The C++11 (& C11) compare_exchange functions with explicit memory
order allow you to specify two sets of semantics, one for when the
exchange actually happens and one for when it fails. Unfortunately, at
the moment the LLVM IR "cmpxchg" instruction only has one ordering,
which means we get sub-optimal codegen.
This probably affects all architectures which use
2010 Oct 18
5
[LLVMdev] MachineOperand::TargetFlags question
I'm looking at utilizing the MachineOperand::TargetFlags and I'm wondering if there is a specific reason on limiting the size of the flags to 8 bits. Also are there any assumptions on what can be validly used here that I should keep in mind? Ideally I need 28 bits but I can code the major cases using all 8 bits, but I don't want to clobber anything that might be used internally in
2012 Oct 29
0
[LLVMdev] [llvm-commits] [llvm] r162770 - in /llvm/trunk: include/llvm/CodeGen/MachineOperand.h lib/CodeGen/MachineInstr.cpp
Hi Sergei,
our use of target flags will be on immediate register operands if I am
not mistaken (and if not we can always encode it as such)?
I guess you are refering to the hexagon backend needing to distinguish
between instances of an instruction that uses a constant value that
can fit into the 4 byte of the instruction and one that encodes the
immediate in an extra instruction slot (what we
2011 Apr 01
2
[LLVMdev] Assert in VerifySDNode
> -----Original Message-----
> From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu]
> On Behalf Of Duncan Sands
> Sent: Thursday, March 31, 2011 7:43 PM
> To: llvmdev at cs.uiuc.edu
> Subject: Re: [LLVMdev] Assert in VerifySDNode
>
> Hi Micah,
>
> > assert(!isa<MemSDNode>(N) && "Bad MemSDNode!");
>
> you
2011 Mar 31
3
[LLVMdev] Assert in VerifySDNode
We are syncing to 2.9 and we are hitting an with our backend in VerifySDNode in SelectionDAG.cpp.
The first assert here is failing
assert(!isa<MemSDNode>(N) && "Bad MemSDNode!");
Now, this is new to 2.9 and I am trying to understand what is invalid about what I am generating.
What I generate has worked fine from LLVM version 2.4 until now without causing any issues.