< prev index next >

src/hotspot/share/opto/matcher.hpp

Print this page
rev 60615 : 8231441: Initial SVE backend support
Reviewed-by: adinn, pli
Contributed-by: joshua.zhu@arm.com, yang.zhang@arm.com, ningsheng.jian@arm.com


 321   static const bool has_predicated_vectors(void);
 322 
 323   // Some uarchs have different sized float register resources
 324   static const int float_pressure(int default_pressure_threshold);
 325 
 326   // Used to determine if we have fast l2f conversion
 327   // USII has it, USIII doesn't
 328   static const bool convL2FSupported(void);
 329 
 330   // Vector width in bytes
 331   static const int vector_width_in_bytes(BasicType bt);
 332 
 333   // Limits on vector size (number of elements).
 334   static const int max_vector_size(const BasicType bt);
 335   static const int min_vector_size(const BasicType bt);
 336   static const bool vector_size_supported(const BasicType bt, int size) {
 337     return (Matcher::max_vector_size(bt) >= size &&
 338             Matcher::min_vector_size(bt) <= size);
 339   }
 340 




 341   // Vector ideal reg
 342   static const uint vector_ideal_reg(int len);
 343 
 344   // CPU supports misaligned vectors store/load.
 345   static const bool misaligned_vectors_ok();
 346 
 347   // Should original key array reference be passed to AES stubs
 348   static const bool pass_original_key_for_aes();
 349 
 350   // Used to determine a "low complexity" 64-bit constant.  (Zero is simple.)
 351   // The standard of comparison is one (StoreL ConL) vs. two (StoreI ConI).
 352   // Depends on the details of 64-bit constant generation on the CPU.
 353   static const bool isSimpleConstant64(jlong con);
 354 
 355   // These calls are all generated by the ADLC
 356 
 357   // TRUE - grows up, FALSE - grows down (Intel)
 358   virtual bool stack_direction() const;
 359 
 360   // Java-Java calling convention




 321   static const bool has_predicated_vectors(void);
 322 
 323   // Some uarchs have different sized float register resources
 324   static const int float_pressure(int default_pressure_threshold);
 325 
 326   // Used to determine if we have fast l2f conversion
 327   // USII has it, USIII doesn't
 328   static const bool convL2FSupported(void);
 329 
 330   // Vector width in bytes
 331   static const int vector_width_in_bytes(BasicType bt);
 332 
 333   // Limits on vector size (number of elements).
 334   static const int max_vector_size(const BasicType bt);
 335   static const int min_vector_size(const BasicType bt);
 336   static const bool vector_size_supported(const BasicType bt, int size) {
 337     return (Matcher::max_vector_size(bt) >= size &&
 338             Matcher::min_vector_size(bt) <= size);
 339   }
 340 
 341   static const bool supports_scalable_vector();
 342   // Actual max scalable vector register length.
 343   static const int scalable_vector_reg_size(const BasicType bt);
 344 
 345   // Vector ideal reg
 346   static const uint vector_ideal_reg(int len);
 347 
 348   // CPU supports misaligned vectors store/load.
 349   static const bool misaligned_vectors_ok();
 350 
 351   // Should original key array reference be passed to AES stubs
 352   static const bool pass_original_key_for_aes();
 353 
 354   // Used to determine a "low complexity" 64-bit constant.  (Zero is simple.)
 355   // The standard of comparison is one (StoreL ConL) vs. two (StoreI ConI).
 356   // Depends on the details of 64-bit constant generation on the CPU.
 357   static const bool isSimpleConstant64(jlong con);
 358 
 359   // These calls are all generated by the ADLC
 360 
 361   // TRUE - grows up, FALSE - grows down (Intel)
 362   virtual bool stack_direction() const;
 363 
 364   // Java-Java calling convention


< prev index next >