search for: subclassdata

Displaying 20 results from an estimated 64 matches for "subclassdata".

2019 Dec 24
2
RFC: Refactor SubclassData
Hello devs, Recently I've been working on a bug that can probably be fixed with the addition of a simple flag to a class descendant of `llvm::Value`. Without increasing the size of the class, I can just add this flag to `llvm::Value::SubclassData`. But this is not an easy task! This is because the offsetes/sizes of the data stored in the `SubclassData`, are hardcoded literals/enums. If you change but a single bit in one of those offsets/sizes in a base class, then all the classes derived, will have to be adjusted accordingly - which can be...
2019 Dec 26
2
RFC: Refactor SubclassData
...e: > >> Hello devs, >> >> Recently I've been working on a bug that can probably be fixed with the >> addition of a simple flag to a class descendant of `llvm::Value`. >> Without increasing the size of the class, I can just add this flag to >> `llvm::Value::SubclassData`. But this is not an easy task! >> >> This is because the offsetes/sizes of the data stored in the >> `SubclassData`, are hardcoded literals/enums. >> If you change but a single bit in one of those offsets/sizes in a base >> class, then all the classes derived, will ha...
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 an...
2009 Dec 15
0
[LLVMdev] SubclassData in SDNode
hi,everyone. i notice that theres a subclassdata field in SDNode class but it seems that there no any method to access subclassdata, so i want to encode some information into it in my backend, and going to add the access function for it. is the way using it like this subclassdata recommanded? or the subclassdata is designed to use for other purp...
2009 Aug 03
0
[LLVMdev] RFC: SDNode Flags
...red 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. There are 15 bits to play with and only the bottom 6-7 are in use (if I am reading it right). We can also reduce the width of following field NodeId (do we need 32-bit for it?) and widen SubclassData. Also, NumOperands and NumValues can be changed to take up fewer bits. I don't think...
2020 May 03
2
LLVM type.h question
Hi, I see this in the Type class: unsigned getSubclassData() const { return SubclassData; } void setSubclassData(unsigned val) { SubclassData = val; // Ensure we don't have any accidental truncation. assert(getSubclassData() == val && "Subclass data too large for field"); } How will the assert ever get triggered? The type is &...
2013 Feb 19
9
[LLVMdev] [RFC] Add Intel TSX HLE Support
...ach, I propose to change LLVM/clang by adding: + a metadata 'targetflags' in LLVM atomic IR to pass this target-specific memory model hint + one extra target flag in AtomicSDNode & MemIntrinsicSDNode to specify XACQUIRE or XRELEASE hints This extra target flag is embedded into the SubclassData fields. The following is rationale how such target flags are embedded into SubclassData in SDNode here is the current SDNode class hierarchy of memory related nodes SDNode -> MemSDNode -> LSBaseNode -> LoadSDNode | + -> StoreSDNode...
2013 Feb 19
0
[LLVMdev] [RFC] Add Intel TSX HLE Support
...by adding: > > + a metadata 'targetflags' in LLVM atomic IR to pass this > target-specific memory model hint > > + one extra target flag in AtomicSDNode & MemIntrinsicSDNode to specify > XACQUIRE or XRELEASE hints > This extra target flag is embedded into the SubclassData fields. The > following is rationale how such target flags are embedded into > SubclassData in SDNode > > here is the current SDNode class hierarchy of memory related nodes > > SDNode -> MemSDNode -> LSBaseNode -> LoadSDNode > | +...
2013 Feb 19
0
[LLVMdev] [RFC] Add Intel TSX HLE Support
...by adding: > > + a metadata 'targetflags' in LLVM atomic IR to pass this > target-specific memory model hint > > + one extra target flag in AtomicSDNode & MemIntrinsicSDNode to specify > XACQUIRE or XRELEASE hints > This extra target flag is embedded into the SubclassData fields. The > following is rationale how such target flags are embedded into > SubclassData in SDNode > > here is the current SDNode class hierarchy of memory related nodes > > SDNode -> MemSDNode -> LSBaseNode -> LoadSDNode > | +...
2013 Feb 19
0
[LLVMdev] [RFC] Add Intel TSX HLE Support
...by adding: > > + a metadata 'targetflags' in LLVM atomic IR to pass this > target-specific memory model hint > > + one extra target flag in AtomicSDNode & MemIntrinsicSDNode to specify > XACQUIRE or XRELEASE hints > This extra target flag is embedded into the SubclassData fields. The > following is rationale how such target flags are embedded into > SubclassData in SDNode > > here is the current SDNode class hierarchy of memory related nodes > > SDNode -> MemSDNode -> LSBaseNode -> LoadSDNode > | +...
2013 Feb 19
2
[LLVMdev] [RFC] Add Intel TSX HLE Support
...ach, I propose to change LLVM/clang by adding: + a metadata 'targetflags' in LLVM atomic IR to pass this target-specific memory model hint + one extra target flag in AtomicSDNode & MemIntrinsicSDNode to specify XACQUIRE or XRELEASE hints This extra target flag is embedded into the SubclassData fields. The following is rationale how such target flags are embedded into SubclassData in SDNode here is the current SDNode class hierarchy of memory related nodes SDNode -> MemSDNode -> LSBaseNode -> LoadSDNode | + -> StoreSDNode...
2009 Aug 03
1
[LLVMdev] RFC: SDNode Flags
...86 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. That's a good idea. > One way to handle this might be to expand the use of SubclassData. > There are 15 bits to play with and only the bottom 6-7 are in use (if > I am reading it right). We can also reduce the width of following > field NodeId (do we need 32-bit for it?) and widen SubclassData. Yep. See my response to Dan. I don't know how many target-specific flags yo...
2013 Feb 19
0
[LLVMdev] [RFC] Add Intel TSX HLE Support
...M/clang by adding: > > + a metadata 'targetflags' in LLVM atomic IR to pass this > target-specific memory model hint > > + one extra target flag in AtomicSDNode & MemIntrinsicSDNode to specify XACQUIRE or XRELEASE hints > This extra target flag is embedded into the SubclassData fields. The following is rationale how such target flags are embedded into SubclassData in SDNode > > here is the current SDNode class hierarchy of memory related nodes > > SDNode -> MemSDNode -> LSBaseNode -> LoadSDNode > | + -> StoreSD...
2009 Feb 08
2
[LLVMdev] overflow + saturation stuff
On Feb 8, 2009, at 8:58 AM, Dan Gohman wrote: > Hi Chris, > > Would it be better to split add into multiple opcodes instead of using > SubclassData bits? No, I don't think so. The big difference here is that (like type) "opcode" never changes for an instruction once it is created. I expect that optimizations would want to play with these (e.g. convert them to 'undefined' when it can prove overflow never happens)...
2009 Feb 09
0
[LLVMdev] overflow + saturation stuff
On Feb 8, 2009, at 11:33 AM, Chris Lattner wrote: > > On Feb 8, 2009, at 8:58 AM, Dan Gohman wrote: > >> Hi Chris, >> >> Would it be better to split add into multiple opcodes instead of >> using >> SubclassData bits? > > No, I don't think so. The big difference here is that (like type) > "opcode" never changes for an instruction once it is created. I > expect that optimizations would want to play with these (e.g. convert > them to 'undefined' when it can prove overfl...
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 patterns to properly s...
2009 Oct 17
1
[LLVMdev] getIntrinsicID() optimization
...me applications value storage more than anything, many applications value compilation time very highly. getIntrinsicID is called all over the place (isIntrinsic uses it as well), and every single time it checks the function name. To me that sounds a lot more dramatic than 2 bytes. Anyway, using SubclassData could work. It's already being used for the calling convention, which has values ranging from 0 to 68 (fitting in 7 bits), while intrinsic ID's would take 9 bits. So that would only just work. However, the calling convention enums could be reordered to only take 3 bits. I was wondering...
2010 Feb 11
1
[LLVMdev] Metadata [volatile bug?]
...mporal > flag is significant. It's not fundamentally different from the > volatile flag in this respect. Ok, this sounds right, but this look wrong: /// Abstact virtual class for operations for memory operations class MemSDNode : public SDNode { [...] bool isVolatile() const { return (SubclassData >> 5) & 1; } Shouldn't that be MMO->isVolatile()? -Dave
2013 Feb 28
1
[LLVMdev] [RFC] Add Intel TSX HLE Support
...;> >> + a metadata 'targetflags' in LLVM atomic IR to pass this >> target-specific memory model hint >> >> + one extra target flag in AtomicSDNode & MemIntrinsicSDNode to specify XACQUIRE or XRELEASE hints >> This extra target flag is embedded into the SubclassData fields. The following is rationale how such target flags are embedded into SubclassData in SDNode >> >> here is the current SDNode class hierarchy of memory related nodes >> >> SDNode -> MemSDNode -> LSBaseNode -> LoadSDNode >> |...
2019 Dec 27
2
RFC: Refactor SubclassData
Ehud, can you elaborate on which classes you're trying to change. I know some of the classes already use methods like getSubclassDataFromInstruction() to hide bits from the subclasses. They could probably shift the data too. ~Craig On Fri, Dec 27, 2019 at 9:35 AM Bruno Ricci via llvm-dev < llvm-dev at lists.llvm.org> wrote: > Hi, > > On 26/12/2019 20:53, Ehud Katz via llvm-dev wrote: > > I've tested i...