|
411 | 411 | come-from *clasp-system*)) |
412 | 412 | (frame |
413 | 413 | (unless simplep |
414 | | - (%intrinsic-call "llvm.frameaddress.p0i8" |
| 414 | + (%intrinsic-call "llvm.frameaddress.p0" |
415 | 415 | (list (%i32 0))))) |
416 | 416 | (normal-successor (first successors)) |
417 | 417 | (bufp (cmp:alloca cmp::%jmp-buf-tag% 1 "come-from-jmp-buf"))) |
|
613 | 613 | 'insert-step-conditions) |
614 | 614 | (let ((origin (bir:origin inst))) |
615 | 615 | (when (typep origin 'cst:cst) |
616 | | - (let* ((frame (%intrinsic-call "llvm.frameaddress.p0i8" |
| 616 | + (let* ((frame (%intrinsic-call "llvm.frameaddress.p0" |
617 | 617 | (list (%i32 0)) "stepper-frame")) |
618 | 618 | (raw (cst:raw origin)) |
619 | 619 | ;; See #1376: Sometimes the source form will be a literal. |
|
647 | 647 | ;; so now we need to put in the cc_breakstep_after to support |
648 | 648 | ;; the step-over facility. |
649 | 649 | (%intrinsic-call "cc_breakstep_after" |
650 | | - (list (%intrinsic-call "llvm.frameaddress.p0i8" |
| 650 | + (list (%intrinsic-call "llvm.frameaddress.p0" |
651 | 651 | (list (%i32 0)) |
652 | 652 | "stepper-frame"))))) |
653 | 653 |
|
|
1555 | 1555 | "adjusted-nret-variable")) |
1556 | 1556 | (ncopy (cmp:irc-sub adjusted-nvalues (%size_t 1) "ntocopy"))) |
1557 | 1557 | ;; Copy the rest |
1558 | | - (%intrinsic-call "llvm.memcpy.p0i8.p0i8.i64" |
| 1558 | + (%intrinsic-call "llvm.memcpy.p0.p0.i64" |
1559 | 1559 | (list (cmp:irc-bit-cast dest cmp:%i8*% |
1560 | 1560 | "var-dest-subsequent") |
1561 | 1561 | ;; read from the 1st value of the mv vector |
|
1576 | 1576 | for dest = (cmp:irc-typed-gep-variable cmp:%t*% valvec (list startn) "dest") |
1577 | 1577 | do (ecase key |
1578 | 1578 | ((:saved) |
1579 | | - (%intrinsic-call "llvm.memcpy.p0i8.p0i8.i64" |
| 1579 | + (%intrinsic-call "llvm.memcpy.p0.p0.i64" |
1580 | 1580 | (list (cmp:irc-bit-cast dest cmp:%i8*% "dest") |
1581 | 1581 | (cmp:irc-bit-cast extra cmp:%i8*% |
1582 | 1582 | "source") |
|
1884 | 1884 | #+(or)(llvm-sys:set-calling-conv the-function 'llvm-sys:fastcc) |
1885 | 1885 | (llvm-sys:set-personality-fn the-function |
1886 | 1886 | (cmp:irc-personality-function)) |
1887 | | - (llvm-sys:add-fn-attr the-function 'llvm-sys:attribute-uwtable) |
| 1887 | + ;; we'd like to be able to be interruptable at any time, so we |
| 1888 | + ;; need async-safe unwinding tables basically everywhere. |
| 1889 | + ;; (Although in code that ignores interrupts we could loosen this.) |
| 1890 | + (llvm-sys:add-fn-attr2string the-function "uwtable" "async") |
1888 | 1891 | (when (null (bir:returni function)) |
1889 | 1892 | (llvm-sys:add-fn-attr the-function 'llvm-sys:attribute-no-return)) |
1890 | 1893 | (unless (policy:policy-value (bir:policy function) |
1891 | | - 'perform-optimization) |
| 1894 | + 'perform-optimization) |
1892 | 1895 | (llvm-sys:add-fn-attr the-function 'llvm-sys:attribute-no-inline) |
1893 | 1896 | (llvm-sys:add-fn-attr the-function 'llvm-sys:attribute-optimize-none)) |
1894 | 1897 | (cmp:with-irbuilder (body-irbuilder) |
|
1945 | 1948 | :function xep-arity-function) |
1946 | 1949 | (llvm-sys:set-personality-fn xep-arity-function |
1947 | 1950 | (cmp:irc-personality-function)) |
1948 | | - (llvm-sys:add-fn-attr xep-arity-function 'llvm-sys:attribute-uwtable) |
| 1951 | + (llvm-sys:add-fn-attr2string xep-arity-function |
| 1952 | + "uwtable" "async") |
1949 | 1953 | (when (null (bir:returni function)) |
1950 | 1954 | (llvm-sys:add-fn-attr xep-arity-function |
1951 | 1955 | 'llvm-sys:attribute-no-return)) |
|
0 commit comments