Project

General

Profile

Bug #1357

Fixing variables into specific CPU registers deemed overrated & may disturb compilers' optimizers

Added by roberto (Ollivier Robert) over 10 years ago. Updated about 8 years ago.

Status:
Closed
Priority:
Normal
Target version:
-
ruby -v:
ruby 1.9.2dev (2009-03-31) [i386-darwin9.6.0]
Backport:
[ruby-core:23132]

Description

=begin
I do not think that fixing specific variable into CPU registers is really reflected in performance gains (benchmarks welcome!). It will also generally disturb compilers' handling of optimization (especially on register-starved CPUs like IA-32/i386) and may generate less efficient code. Remove the i386/amd64-specific code.

As a side-effect, it enables successful compilation with recent versions of clang/llvm.
=end


Files

reg.diff (401 Bytes) reg.diff Patch to remove i386/amd64 register assignments. roberto (Ollivier Robert), 04/06/2009 05:43 PM

Associated revisions

Revision e00d5437
Added by hsbt (Hiroshi SHIBATA) over 3 years ago

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52372 b2dd03c8-39d4-4d8f-98ff-823fe69b080e

Revision 52372
Added by hsbt (Hiroshi SHIBATA) over 3 years ago

Revision 52372
Added by hsbt (Hiroshi SHIBATA) over 3 years ago

Revision 52372
Added by hsbt (Hiroshi SHIBATA) over 3 years ago

Revision 52372
Added by hsbt (Hiroshi SHIBATA) over 3 years ago

Revision 52372
Added by hsbt (Hiroshi SHIBATA) over 3 years ago

History

#1

Updated by nobu (Nobuyoshi Nakada) over 10 years ago

=begin
Hi,

At Mon, 6 Apr 2009 17:43:20 +0900,
Ollivier Robert wrote in [ruby-core:23132]:

As a side-effect, it enables successful compilation with
recent versions of clang/llvm.

Does it have a macro to tell if it's clang/llvm?

--
Nobu Nakada

=end

#2

Updated by roberto (Ollivier Robert) over 10 years ago

=begin
clang uses clang as main #define. It also aims to support most GNUC constructs & defines.
=end

#3

Updated by nobu (Nobuyoshi Nakada) over 10 years ago

=begin
Hi,

At Mon, 6 Apr 2009 19:38:09 +0900,
Ollivier Robert wrote in [ruby-core:23137]:

clang uses clang as main #define. It also aims to
support most GNUC constructs & defines.

Also GNUC and i386?

I'd thought llvm generates code for it's own VM.

--
Nobu Nakada

=end

#4

Updated by yugui (Yuki Sonoda) about 10 years ago

  • Status changed from Open to Feedback
  • Assignee set to ko1 (Koichi Sasada)

=begin

=end

#5

Updated by naruse (Yui NARUSE) over 9 years ago

  • Status changed from Feedback to Closed

=begin
r25504 fixes this.
=end

Also available in: Atom PDF