Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

No specialization when library function is renamed. #535

Open
gambiteer opened this issue Apr 26, 2020 · 0 comments
Open

No specialization when library function is renamed. #535

gambiteer opened this issue Apr 26, 2020 · 0 comments

Comments

@gambiteer
Copy link
Collaborator

With this test-file

(declare (standard-bindings)
         (extended-bindings)
         (block)
         (mostly-fixnum)
         (not safe))

(define u64-and bitwise-and)

(define (foo x y)
  (u64-and x y))

foo is compiled as

#undef ___PH_PROC
#define ___PH_PROC ___H_foo
#undef ___PH_LBL0
#define ___PH_LBL0 3
#undef ___PD_ALL
#define ___PD_ALL ___D_FP
#undef ___PR_ALL
#define ___PR_ALL ___R_FP
#undef ___PW_ALL
#define ___PW_ALL
___BEGIN_P_COD
___BEGIN_P_HLBL
___DEF_P_HLBL_INTRO
___DEF_P_HLBL(___L0_foo)
___DEF_P_HLBL(___L1_foo)
___END_P_HLBL
___BEGIN_P_SW
___DEF_SLBL(0,___L0_foo)
   ___IF_NARGS_EQ(2,___NOTHING)
   ___WRONG_NARGS(0,2,0,0)
___DEF_GLBL(___L_foo)
   ___POLL(1)
___DEF_SLBL(1,___L1_foo)
   ___JUMPPRM(___SET_NARGS(2),___PRM__23__23_bitwise_2d_and)
___END_P_SW
___END_P_COD

i.e., when u64-and is replaced by bitwise-and, the bitwise-and is not specialized for the two-fixnum case.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant