Code Review for call-stage-hotspot

Prepared by:goetz on Wed Nov 20 09:12:50 CET 2013
Workspace:/net/usr.work/d045726/oJ/call-stage-hotspot
Compare against: http://hg.openjdk.java.net/ppc-aix-port/stage/hotspot
Compare against version:5665
Summary of changes: 87 lines changed: 60 ins; 0 del; 27 mod; 21889 unchg
Changeset: call-stage-hotspot.changeset
Author comments:

C2 Call nodes use several constant values. So far C2 does not support placing these values in the constant table of the nmethod.

Among others, these constants are

  • the called address
  • the inline cache
  • values required by the C-calling convention (on PPC, env pointer and toc from function descriptor)

This change extends Call nodes so that they can issue constants to the constant table.

  • Extend adlc to add edge to MachConstantBaseNode if $constanttablebase is used in the specification.
  • Extend Call nodes to deliver proper register mask to register allocation for this new input.
  • Add method ins_num_consts() so that number of required constants can be specified in the call node.
  • Extend output() so that it reserves space for the constants in the Calls, using ins_num_consts().

Legend: Modified file
Deleted file
New file

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New ----- Raw src/share/vm/adlc/adlparse.cpp

rev 5666 : 8028580: PPC64 (part 114/120): Support for Call nodes with constants.
36 lines changed: 22 ins; 0 del; 14 mod; 5244 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New ----- Raw src/share/vm/adlc/formssel.cpp

rev 5666 : 8028580: PPC64 (part 114/120): Support for Call nodes with constants.
2 lines changed: 2 ins; 0 del; 0 mod; 4237 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New ----- Raw src/share/vm/adlc/formssel.hpp

rev 5666 : 8028580: PPC64 (part 114/120): Support for Call nodes with constants.
4 lines changed: 3 ins; 0 del; 1 mod; 1088 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New ----- Raw src/share/vm/adlc/output_c.cpp

rev 5666 : 8028580: PPC64 (part 114/120): Support for Call nodes with constants.
10 lines changed: 5 ins; 0 del; 5 mod; 4386 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New ----- Raw src/share/vm/adlc/output_h.cpp

rev 5666 : 8028580: PPC64 (part 114/120): Support for Call nodes with constants.
7 lines changed: 6 ins; 0 del; 1 mod; 2259 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New ----- Raw src/share/vm/opto/machnode.cpp

rev 5666 : 8028580: PPC64 (part 114/120): Support for Call nodes with constants.
13 lines changed: 10 ins; 0 del; 3 mod; 768 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New ----- Raw src/share/vm/opto/machnode.hpp

rev 5666 : 8028580: PPC64 (part 114/120): Support for Call nodes with constants.
7 lines changed: 6 ins; 0 del; 1 mod; 939 unchg

Cdiffs Udiffs Wdiffs Sdiffs Frames Old New ----- Raw src/share/vm/opto/output.cpp

8 lines changed: 6 ins; 0 del; 2 mod; 2968 unchg

This code review page was prepared using /sapmnt/home1/d045726/bin/webrev.ksh (vers 24.0-hg+jbs).