search for: builtin_op_end

Displaying 17 results from an estimated 17 matches for "builtin_op_end".

2012 Jun 01
3
[LLVMdev] Predicate registers/condition codes question
...he next available integer arithmetic register: that is i32. Because LLVM automatically legalizes i8 types, it considers all operations to be legal on i8 (i.e., both integer and boolean arithmetic.) So the solution that I was investigating looks like this: for (unsigned int i = 0; i < ISD::BUILTIN_OP_END; ++i) { switch (i) { // By default all operations on i8 have to be promoted to i32. default: setOperationAction(i, MVT::i8, Custom); break; // Only the following operations are legal on i8 predicates. case ISD::AND: case ISD::OR: case ISD::...
2012 Jun 03
0
[LLVMdev] Predicate registers/condition codes question
...thmetic register: that is > i32. Because LLVM automatically legalizes i8 types, it considers all > operations to be legal on i8 (i.e., both integer and boolean arithmetic.) > > So the solution that I was investigating looks like this: > > for (unsigned int i = 0; i< ISD::BUILTIN_OP_END; ++i) { > switch (i) { > // By default all operations on i8 have to be promoted to i32. > default: > setOperationAction(i, MVT::i8, Custom); > break; > > // Only the following operations are legal on i8 predicates. > case...
2008 Sep 19
0
[LLVMdev] Custom Opcodes versus built-in opcodes
...SPISD::BRFCC; > } > return DAG.getNode(Opc, MVT::Other, Chain, Dest, > DAG.getConstant(SPCC, MVT::i32), CompareFlag); Actually, I'm wrong, sorry about that. It looks like the encoding is in the definition of the enum: enum { FIRST_NUMBER = ISD::BUILTIN_OP_END+SP::INSTRUCTION_LIST_END, CMPICC, // Compare two GPR operands, set icc. CMPFCC, // Compare two FP operands, set fcc. BRICC, // Branch to dest on icc condition BRFCC, // Branch to dest on fcc condition ... Are your "targetISD" enums proper...
2008 Sep 19
2
[LLVMdev] Custom Opcodes versus built-in opcodes
________________________________ From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On Behalf Of Chris Lattner Sent: Friday, September 19, 2008 10:49 AM To: LLVM Developers Mailing List Subject: Re: [LLVMdev] Custom Opcodes versus built-in opcodes On Sep 18, 2008, at 4:04 PM, Villmow, Micah wrote: I am using lowering instructions and using custom opcodes that
2015 Apr 02
2
[LLVMdev] How to enable use of 64bit load/store for 32bit architecture
...oad/store work. But it causes llvm to try to use i64 operations for *everything*, which of course fails for all other operations, since there's no such instruction pattern for them. Okay, so I then try setting all the operations to "Expand" via: for (unsigned Op = 0; Op < ISD::BUILTIN_OP_END; ++Op) { setOperationAction(Op, MVT::i64, Expand); } This does not actually work properly. E.g. %res = add nsw i64 %0, 3 gives an error: LLVM ERROR: Cannot select: 0x43b1df0: i64 = add 0x43b1bd0, 0x43b1ce0 [ORD=3] [ID=15] ... Which seems odd -- it appears as if it ignored the Expand...
2012 Jun 04
3
[LLVMdev] Predicate registers/condition codes question
On Sun, Jun 3, 2012 at 7:11 AM, Ivan Llopard <ivanllopard at gmail.com> wrote: >> So the solution that I was investigating looks like this: >> >>      for (unsigned int i = 0; i<  ISD::BUILTIN_OP_END; ++i) { >>        switch (i) { >>        // By default all operations on i8 have to be promoted to i32. >>        default: >>          setOperationAction(i, MVT::i8, Custom); >>          break; >> >>        // Only the following operations are legal on i8 p...
2015 Apr 02
2
[LLVMdev] How to enable use of 64bit load/store for 32bit architecture
...es llvm to try to use i64 operations for *everything*, which of course fails for all other operations, since there's no such instruction pattern for them. >> >> Okay, so I then try setting all the operations to "Expand" via: >> for (unsigned Op = 0; Op < ISD::BUILTIN_OP_END; ++Op) { >> setOperationAction(Op, MVT::i64, Expand); >> } >> >> This does not actually work properly. E.g. >> %res = add nsw i64 %0, 3 >> gives an error: >> LLVM ERROR: Cannot select: 0x43b1df0: i64 = add 0x43b1bd0, 0x43b1ce0 [ORD=3] [ID=15]...
2012 Jun 03
2
[LLVMdev] Predicate registers/condition codes question
...>> i32. Because LLVM automatically legalizes i8 types, it considers all >> operations to be legal on i8 (i.e., both integer and boolean arithmetic.) >> >> So the solution that I was investigating looks like this: >> >> for (unsigned int i = 0; i< ISD::BUILTIN_OP_END; ++i) { >> switch (i) { >> // By default all operations on i8 have to be promoted to i32. >> default: >> setOperationAction(i, MVT::i8, Custom); >> break; >> >> // Only the following operations are legal o...
2015 Apr 03
2
[LLVMdev] How to enable use of 64bit load/store for 32bit architecture
...64 operations for *everything*, which of course fails for all other operations, since there's no such instruction pattern for them. >>>> >>>> Okay, so I then try setting all the operations to "Expand" via: >>>> for (unsigned Op = 0; Op < ISD::BUILTIN_OP_END; ++Op) { >>>> setOperationAction(Op, MVT::i64, Expand); >>>> } >>>> >>>> This does not actually work properly. E.g. >>>> %res = add nsw i64 %0, 3 >>>> gives an error: >>>> LLVM ERROR: Cannot select: 0x43b...
2009 May 20
2
[LLVMdev] [PATCH] Add new phase to legalization to handle vector operations
...ctorValue = false; + for (SDNode::value_iterator J = I->value_begin(); J != I->value_end(); ++J) + HasVectorValue |= J->isVector(); + if (!HasVectorValue) continue; + SDNode* Result = I; + switch (I->getOpcode()) { + default: + assert(I->getOpcode() > ISD::BUILTIN_OP_END && "Unexpected node!"); + break; + case ISD::UNDEF: + case ISD::FORMAL_ARGUMENTS: + case ISD::CALL: + case ISD::MERGE_VALUES: + case ISD::RET: + case ISD::VAARG: + case ISD::Register: + case ISD::INTRINSIC_WO_CHAIN: + case ISD::INTRINSIC_W_CHAIN: +...
2012 Jun 01
0
[LLVMdev] Predicate registers/condition codes question
Hi Sebastian, Le 25/05/2012 18:54, Sebastian Pop a écrit : > On Thu, May 24, 2012 at 5:40 PM, Sebastian Pop<spop at codeaurora.org> wrote: >> On Thu, May 24, 2012 at 5:06 PM, Hal Finkel<hfinkel at anl.gov> wrote: >>> Sebastian, >>> >>> First, it might be useful to look at what is done in the PowerPC >>> backend. PPC also has condition
2020 Jun 30
5
[RFC] Semi-Automatic clang-format of files with low frequency
I 100% get that we might not like the decisions clang-format is making, but how does one overcome this when adding new code? The pre-merge checks enforce clang-formatting before commit and that's a common review comment anyway for those who didn't join the pre-merge checking group. I'm just wondering are we not all following the same guidelines? Concerns of clang-format not being good
2012 May 25
3
[LLVMdev] Predicate registers/condition codes question
On Thu, May 24, 2012 at 5:40 PM, Sebastian Pop <spop at codeaurora.org> wrote: > On Thu, May 24, 2012 at 5:06 PM, Hal Finkel <hfinkel at anl.gov> wrote: >> Sebastian, >> >> First, it might be useful to look at what is done in the PowerPC >> backend. PPC also has condition registers that are larger than the >> 1-bit conditional results, and it defines
2009 May 20
0
[LLVMdev] [PATCH] Add new phase to legalization to handle vector operations
...ctorValue = false; + for (SDNode::value_iterator J = I->value_begin(); J != I->value_end(); ++J) + HasVectorValue |= J->isVector(); + if (!HasVectorValue) continue; + SDNode* Result = I; + switch (I->getOpcode()) { + default: + assert(I->getOpcode() > ISD::BUILTIN_OP_END && "Unexpected node!"); + break; + case ISD::UNDEF: + case ISD::FORMAL_ARGUMENTS: + case ISD::CALL: + case ISD::MERGE_VALUES: + case ISD::RET: + case ISD::VAARG: + case ISD::Register: + case ISD::INTRINSIC_WO_CHAIN: + case ISD::INTRINSIC_W_CHAIN: +...
2009 May 21
0
[LLVMdev] [PATCH] Add new phase to legalization to handle vector operations
On Wed, May 20, 2009 at 4:55 PM, Dan Gohman <gohman at apple.com> wrote: > Can you explain why you chose the approach of using a new pass? > I pictured removing LegalizeDAG's type legalization code would > mostly consist of finding all the places that use TLI.getTypeAction > and just deleting code for handling its Expand and Promote. Are you > anticipating something more
2009 May 20
2
[LLVMdev] [PATCH] Add new phase to legalization to handle vector operations
On May 20, 2009, at 1:34 PM, Eli Friedman wrote: > On Wed, May 20, 2009 at 1:19 PM, Eli Friedman > <eli.friedman at gmail.com> wrote: > >> Per subject, this patch adding an additional pass to handle vector >> >> operations; the idea is that this allows removing the code from >> >> LegalizeDAG that handles illegal types, which should be a significant
2009 May 21
2
[LLVMdev] [PATCH] Add new phase to legalization to handle vector operations
...ctorValue = false; + for (SDNode::value_iterator J = I->value_begin(); J != I->value_end(); ++J) + HasVectorValue |= J->isVector(); + if (!HasVectorValue) continue; + SDNode* Result = I; + switch (I->getOpcode()) { + default: + assert(I->getOpcode() > ISD::BUILTIN_OP_END && "Unexpected node!"); + break; + case ISD::UNDEF: + case ISD::FORMAL_ARGUMENTS: + case ISD::CALL: + case ISD::MERGE_VALUES: + case ISD::RET: + case ISD::VAARG: + case ISD::Register: + case ISD::INTRINSIC_WO_CHAIN: + case ISD::INTRINSIC_W_CHAIN: +...