equal
deleted
inserted
replaced
1 /* |
1 /* |
2 * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 1997, 2018, 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. |
302 static bool is_dominator_unc(CallStaticJavaNode* dom_unc, CallStaticJavaNode* unc); |
302 static bool is_dominator_unc(CallStaticJavaNode* dom_unc, CallStaticJavaNode* unc); |
303 |
303 |
304 protected: |
304 protected: |
305 ProjNode* range_check_trap_proj(int& flip, Node*& l, Node*& r); |
305 ProjNode* range_check_trap_proj(int& flip, Node*& l, Node*& r); |
306 Node* Ideal_common(PhaseGVN *phase, bool can_reshape); |
306 Node* Ideal_common(PhaseGVN *phase, bool can_reshape); |
307 Node* dominated_by(Node* prev_dom, PhaseIterGVN* igvn); |
|
308 Node* search_identical(int dist); |
307 Node* search_identical(int dist); |
309 |
308 |
310 public: |
309 public: |
311 |
310 |
312 // Degrees of branch prediction probability by order of magnitude: |
311 // Degrees of branch prediction probability by order of magnitude: |
390 virtual const Type* Value(PhaseGVN* phase) const; |
389 virtual const Type* Value(PhaseGVN* phase) const; |
391 virtual int required_outcnt() const { return 2; } |
390 virtual int required_outcnt() const { return 2; } |
392 virtual const RegMask &out_RegMask() const; |
391 virtual const RegMask &out_RegMask() const; |
393 Node* fold_compares(PhaseIterGVN* phase); |
392 Node* fold_compares(PhaseIterGVN* phase); |
394 static Node* up_one_dom(Node* curr, bool linear_only = false); |
393 static Node* up_one_dom(Node* curr, bool linear_only = false); |
|
394 Node* dominated_by(Node* prev_dom, PhaseIterGVN* igvn); |
395 |
395 |
396 // Takes the type of val and filters it through the test represented |
396 // Takes the type of val and filters it through the test represented |
397 // by if_proj and returns a more refined type if one is produced. |
397 // by if_proj and returns a more refined type if one is produced. |
398 // Returns NULL is it couldn't improve the type. |
398 // Returns NULL is it couldn't improve the type. |
399 static const TypeInt* filtered_int_type(PhaseGVN* phase, Node* val, Node* if_proj); |
399 static const TypeInt* filtered_int_type(PhaseGVN* phase, Node* val, Node* if_proj); |