mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	jit_support.rb: cahce JIT support check
* Before make test-all -C .ruby-svn TESTS="../test/ruby/test_jit.rb" 22.40s user 5.38s system 91% cpu 30.196 total * After make test-all -C .ruby-svn TESTS="../test/ruby/test_jit.rb" 12.91s user 3.33s system 91% cpu 17.648 total Also, this makes it easier to check if JIT is actually tested, by showing warning on stderr. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63504 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
		
							parent
							
								
									506512c028
								
							
						
					
					
						commit
						6d38935605
					
				
					 1 changed files with 21 additions and 12 deletions
				
			
		| 
						 | 
				
			
			@ -6,18 +6,7 @@ module JITSupport
 | 
			
		|||
    'clang',
 | 
			
		||||
  ]
 | 
			
		||||
 | 
			
		||||
  module_function
 | 
			
		||||
  def eval_with_jit(env = nil, script, verbose: 0, min_calls: 5, save_temps: false, timeout: JIT_TIMEOUT)
 | 
			
		||||
    args = ['--disable-gems', '--jit-wait', "--jit-verbose=#{verbose}", "--jit-min-calls=#{min_calls}"]
 | 
			
		||||
    args << '--jit-save-temps' if save_temps
 | 
			
		||||
    args << '-e' << script
 | 
			
		||||
    args.unshift(env) if env
 | 
			
		||||
    EnvUtil.invoke_ruby(args,
 | 
			
		||||
      '', true, true, timeout: timeout,
 | 
			
		||||
    )
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def supported?
 | 
			
		||||
  def self.check_support
 | 
			
		||||
    # Experimental. If you want to ensure JIT is working with this test, please set this for now.
 | 
			
		||||
    if ENV.key?('RUBY_FORCE_TEST_JIT')
 | 
			
		||||
      return true
 | 
			
		||||
| 
						 | 
				
			
			@ -34,6 +23,26 @@ module JITSupport
 | 
			
		|||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  module_function
 | 
			
		||||
  def eval_with_jit(env = nil, script, verbose: 0, min_calls: 5, save_temps: false, timeout: JIT_TIMEOUT)
 | 
			
		||||
    args = ['--disable-gems', '--jit-wait', "--jit-verbose=#{verbose}", "--jit-min-calls=#{min_calls}"]
 | 
			
		||||
    args << '--jit-save-temps' if save_temps
 | 
			
		||||
    args << '-e' << script
 | 
			
		||||
    args.unshift(env) if env
 | 
			
		||||
    EnvUtil.invoke_ruby(args,
 | 
			
		||||
      '', true, true, timeout: timeout,
 | 
			
		||||
    )
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def supported?
 | 
			
		||||
    return @supported if defined?(@supported)
 | 
			
		||||
    @supported = JITSupport.check_support.tap do |supported|
 | 
			
		||||
      unless supported
 | 
			
		||||
        warn "JIT tests are skiped since JIT seems not working. Set RUBY_FORCE_TEST_JIT=1 to let it fail.", uplevel: 1
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def remove_mjit_logs(stderr)
 | 
			
		||||
    if RubyVM::MJIT.enabled?
 | 
			
		||||
      stderr.gsub(/^MJIT warning: Skipped to compile unsupported instruction: \w+\n/m, '')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue