[llvm-commits] [llvm] r40520 - in /llvm/trunk: include/llvm/CodeGen/ScheduleDAG.h lib/CodeGen/SelectionDAG/ScheduleDAG.cpp
Christopher Lamb
christopher.lamb at gmail.com
Thu Jul 26 23:52:17 PDT 2007
On Jul 26, 2007, at 10:28 PM, Evan Cheng wrote:
> I don't think they are target opcodes.
Is that a suggestion? In the implementation they are:
--- llvm/trunk/include/llvm/Target/TargetInstrInfo.h (original)
+++ llvm/trunk/include/llvm/Target/TargetInstrInfo.h Thu Jul 26
02:48:21 2007
@@ -177,7 +177,9 @@
enum {
PHI = 0,
INLINEASM = 1,
- LABEL = 2
+ LABEL = 2,
+ EXTRACT_SUBREG = 3,
+ INSERT_SUBREG = 4
};
> These are similar to phi, copyfromreg, etc.
Not quite. The copyfrom/to reg and inlineasm nodes are ISD DAG nodes
and are actually ISel'd in ScheduleDAG to the TargetInstrInfo types.
> Target opcodes are those that are target specific, I.e. not shared
> between targets.
They're part of the low instruction numbers for all targets.
--
Chris
> On Jul 26, 2007, at 8:36 PM, Christopher Lamb
> <christopher.lamb at gmail.com> wrote:
>
>>
>> On Jul 26, 2007, at 6:27 PM, Evan Cheng wrote:
>>
>>>
>>> On Jul 26, 2007, at 1:12 AM, Christopher Lamb wrote:
>>>
>>>> /// EmitNode - Generate machine code for an node and needed
>>>> dependencies.
>>>> ///
>>>> void ScheduleDAG::EmitNode(SDNode *Node,
>>>> @@ -436,6 +578,14 @@
>>>> // If machine instruction
>>>> if (Node->isTargetOpcode()) {
>>>> unsigned Opc = Node->getTargetOpcode();
>>>> +
>>>> + // Handle subreg insert/extract specially
>>>> + if (Opc == TargetInstrInfo::EXTRACT_SUBREG ||
>>>> + Opc == TargetInstrInfo::INSERT_SUBREG) {
>>>> + EmitSubregNode(Node, VRBaseMap);
>>>> + return;
>>>> + }
>>>> +
>>>
>>> Hi Chris,
>>>
>>> Is this right? EXTRACT_SUBREG and INSERT_SUBREG are not target
>>> opcodes.
>>
>> Actually, they are both DAG nodes and target opcodes. ISel lowers
>> the DAG nodes to target opcodes before schedule DAG sees them.
>> --
>> Christopher Lamb
>>
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
--
Christopher Lamb
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20070726/64130e48/attachment.html>
More information about the llvm-commits
mailing list