hotspot/src/share/vm/opto/memnode.hpp
changeset 28954 7dda6c26cc98
parent 27697 ae60f551e5c8
child 29193 3ede621e9262
equal deleted inserted replaced
28952:7fe008f8f88c 28954:7dda6c26cc98
     1 /*
     1 /*
     2  * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
  1374   }
  1374   }
  1375 };
  1375 };
  1376 
  1376 
  1377 //------------------------------Prefetch---------------------------------------
  1377 //------------------------------Prefetch---------------------------------------
  1378 
  1378 
  1379 // Non-faulting prefetch load.  Prefetch for many reads.
       
  1380 class PrefetchReadNode : public Node {
       
  1381 public:
       
  1382   PrefetchReadNode(Node *abio, Node *adr) : Node(0,abio,adr) {}
       
  1383   virtual int Opcode() const;
       
  1384   virtual uint ideal_reg() const { return NotAMachineReg; }
       
  1385   virtual uint match_edge(uint idx) const { return idx==2; }
       
  1386   virtual const Type *bottom_type() const { return Type::ABIO; }
       
  1387 };
       
  1388 
       
  1389 // Non-faulting prefetch load.  Prefetch for many reads & many writes.
       
  1390 class PrefetchWriteNode : public Node {
       
  1391 public:
       
  1392   PrefetchWriteNode(Node *abio, Node *adr) : Node(0,abio,adr) {}
       
  1393   virtual int Opcode() const;
       
  1394   virtual uint ideal_reg() const { return NotAMachineReg; }
       
  1395   virtual uint match_edge(uint idx) const { return idx==2; }
       
  1396   virtual const Type *bottom_type() const { return Type::ABIO; }
       
  1397 };
       
  1398 
       
  1399 // Allocation prefetch which may fault, TLAB size have to be adjusted.
  1379 // Allocation prefetch which may fault, TLAB size have to be adjusted.
  1400 class PrefetchAllocationNode : public Node {
  1380 class PrefetchAllocationNode : public Node {
  1401 public:
  1381 public:
  1402   PrefetchAllocationNode(Node *mem, Node *adr) : Node(0,mem,adr) {}
  1382   PrefetchAllocationNode(Node *mem, Node *adr) : Node(0,mem,adr) {}
  1403   virtual int Opcode() const;
  1383   virtual int Opcode() const;