mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-18 10:04:42 +02:00
8223347: Integration of Vector API (Incubator)
Co-authored-by: Vivek Deshpande <vdeshpande@openjdk.org> Co-authored-by: Qi Feng <qfeng@openjdk.org> Co-authored-by: Ian Graves <igraves@openjdk.org> Co-authored-by: Jean-Philippe Halimi <jphalimi@openjdk.org> Co-authored-by: Vladimir Ivanov <vlivanov@openjdk.org> Co-authored-by: Ningsheng Jian <njian@openjdk.org> Co-authored-by: Razvan Lupusoru <rlupusoru@openjdk.org> Co-authored-by: Smita Kamath <svkamath@openjdk.org> Co-authored-by: Rahul Kandu <rkandu@openjdk.org> Co-authored-by: Kishor Kharbas <kkharbas@openjdk.org> Co-authored-by: Eric Liu <Eric.Liu2@arm.com> Co-authored-by: Aaloan Miftah <someusername3@gmail.com> Co-authored-by: John R Rose <jrose@openjdk.org> Co-authored-by: Shravya Rukmannagari <srukmannagar@openjdk.org> Co-authored-by: Paul Sandoz <psandoz@openjdk.org> Co-authored-by: Sandhya Viswanathan <sviswanathan@openjdk.org> Co-authored-by: Lauren Walkowski <lauren.walkowski@arm.com> Co-authored-by: Yang Zang <Yang.Zhang@arm.com> Co-authored-by: Joshua Zhu <jzhu@openjdk.org> Co-authored-by: Wang Zhuo <wzhuo@openjdk.org> Co-authored-by: Jatin Bhateja <jbhateja@openjdk.org> Reviewed-by: erikj, chegar, kvn, darcy, forax, briangoetz, aph, epavlova, coleenp
This commit is contained in:
parent
386e7e8b73
commit
0c99b19258
336 changed files with 293978 additions and 2083 deletions
|
@ -382,6 +382,8 @@ class Compile : public Phase {
|
|||
|
||||
GrowableArray<CallGenerator*> _boxing_late_inlines; // same but for boxing operations
|
||||
|
||||
GrowableArray<CallGenerator*> _vector_reboxing_late_inlines; // same but for vector reboxing operations
|
||||
|
||||
int _late_inlines_pos; // Where in the queue should the next late inlining candidate go (emulate depth first inlining)
|
||||
uint _number_of_mh_late_inlines; // number of method handle late inlining still pending
|
||||
|
||||
|
@ -644,7 +646,9 @@ class Compile : public Phase {
|
|||
#endif
|
||||
}
|
||||
|
||||
void print_method(CompilerPhaseType cpt, const char *name, int level = 1, int idx = 0);
|
||||
void print_method(CompilerPhaseType cpt, int level = 1, int idx = 0);
|
||||
void print_method(CompilerPhaseType cpt, Node* n, int level = 3);
|
||||
|
||||
#ifndef PRODUCT
|
||||
void igv_print_method_to_file(const char* phase_name = "Debug", bool append = false);
|
||||
|
@ -865,10 +869,13 @@ class Compile : public Phase {
|
|||
bool allow_intrinsics = true);
|
||||
bool should_delay_inlining(ciMethod* call_method, JVMState* jvms) {
|
||||
return should_delay_string_inlining(call_method, jvms) ||
|
||||
should_delay_boxing_inlining(call_method, jvms);
|
||||
should_delay_boxing_inlining(call_method, jvms) ||
|
||||
should_delay_vector_inlining(call_method, jvms);
|
||||
}
|
||||
bool should_delay_string_inlining(ciMethod* call_method, JVMState* jvms);
|
||||
bool should_delay_boxing_inlining(ciMethod* call_method, JVMState* jvms);
|
||||
bool should_delay_vector_inlining(ciMethod* call_method, JVMState* jvms);
|
||||
bool should_delay_vector_reboxing_inlining(ciMethod* call_method, JVMState* jvms);
|
||||
|
||||
// Helper functions to identify inlining potential at call-site
|
||||
ciMethod* optimize_virtual_call(ciMethod* caller, int bci, ciInstanceKlass* klass,
|
||||
|
@ -940,6 +947,10 @@ class Compile : public Phase {
|
|||
_boxing_late_inlines.push(cg);
|
||||
}
|
||||
|
||||
void add_vector_reboxing_late_inline(CallGenerator* cg) {
|
||||
_vector_reboxing_late_inlines.push(cg);
|
||||
}
|
||||
|
||||
void remove_useless_late_inlines(GrowableArray<CallGenerator*>* inlines, Unique_Node_List &useful);
|
||||
|
||||
void process_print_inlining();
|
||||
|
@ -969,6 +980,9 @@ class Compile : public Phase {
|
|||
bool optimize_loops(PhaseIterGVN& igvn, LoopOptsMode mode);
|
||||
void remove_root_to_sfpts_edges(PhaseIterGVN& igvn);
|
||||
|
||||
void inline_vector_reboxing_calls();
|
||||
bool has_vbox_nodes();
|
||||
|
||||
// Matching, CFG layout, allocation, code generation
|
||||
PhaseCFG* cfg() { return _cfg; }
|
||||
bool has_java_calls() const { return _java_calls > 0; }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue