12 citations found. Retrieving documents...
Peter Steenkiste and John Hennessy. Tags and type checking in LISP: Hardware and software approaches. In ASPLOS [ASPLOS1987], pages 50--59.

 Home/Search   Document Not in Database   Summary   Related Articles   Check  

This paper is cited in the following contexts:
Design, Implementation, and Performance Evaluation of.. - Forin, Barrera.. (1988)   (10 citations)  (Correct)

....compilers, sometimes even among compilers for the same machine architecture. Finally, some languages use types that do not have any correspondent hardware type. Lisp systems, for instance, often use runtime data tags to mark a collection of bits as the representative of some data type (see [12] for a recent analysis) Only a few processors implement some form of data tagging in hardware. Solving the heterogeneity problem is difficult because it requires that the server has knowledge of the application s data types. This leads to undesirable close links with the application s runtime ....

Steenkiste, P. Tags and Type Checking in LISP: Hardware and Software Approaches. In Second Intl. Conference on Architectural Support for Programming Languages and Operating Systems ASPLOS-II. ACM-SIGPLAN, Palo Alto, CA, October, 1987.


Do Object-Oriented Languages Need Special Hardware Support? - Hölzle, Ungar (1995)   (6 citations)  (Correct)

.... the least significant two bits) and an overflow check in parallel [U 84] Using a non optimizing Smalltalk compiler, Ungar reported that SOAR Smalltalk would have been 26 slower without the tagged instructions [Ung87] Similarly, Lisp machines have included hardware support for tagging [B 87] [SH87]. But how useful is hardware support in a system with an optimizing compiler To answer this question, it is necessary to examine the code generated for integer addition (or subtraction) in SELF 93. Without special hardware, the expression x y, when specialized for integers, is compiled into the ....

Peter Steenkiste and John Hennessy. Tags and type checking in LISP: Hardware and Software Approaches. In ASPLOS II Conference Proceedings, October 1987.


Implementation Techniques for Prolog - Krall (1994)   (3 citations)  (Correct)

....least significant part of the word as an integer tag. Addition and subtraction can so be done without tag manipulation. Another example is to have the stack pointer displaced by the list tag, so that the allocation of list cells is free. A comprehensive study of tag representations can be found in [SH87]. Problems arise if a variable occurring inside a structure should be bound to this structure. In theorem provers in such a case the unification should fail. This test for occurrence of the variable in a structure, called occur check, is expensive. It is omitted in many unification algorithms ....

Peter Steenkiste and John Hennessy. Tags and type checking in LISP: Hardware and software approaches. In Second International Conference on Architectural Support for Programming Languages and Operating Systems. ACM/IEEE, October 1987.


Global Tagging Optimization by Type Inference - Henglein (1992)   (46 citations)  (Correct)

....to be executed. Second, since tags and tag checking operations are unnecessary, less space is used for data and code, resulting in better data and code density. Third, compile time type information can be used for type specific storage management and instruction selection. Steenkiste and Hennessy [SH87,Ste91] report that a RISC implementation of Portable Standard LISP spends 9 25 of execution time on tag handling depending on the degree to which run time type checking is actually performed. This figure does not even account for the more indirect effects on execution efficiency of reasons two and ....

.... Scheme compilers; e.g. the S1 LISP compiler [BGS82] and Orbit [KKR 86] But no currently existing compiler seems to attempt tagging optimization for structured or procedure values or to perform global (interprocedural) tagging optimization and this even though Steenkiste and Hennessy [SH87] report that 80 of all dynamically executed type checking operations are due to list operations Our type inference algorithm is global, and it analyzes structured data such as lists and procedures. Furthermore it executes asymptotically in almost linear time with a small constant factor and ....

[Article contains additional citation context not shown here]

P. Steenkiste and J. Hennessy. Tags and type checking in LISP: hardware and software approaches. In Proc. 2nd Int'l Conf. on Architectural Support for Programming Languages and Operating Systems (ASPLOS), ACM, Oct. 1987.


Compiling Higher-Order Languages into Fully.. - Feeley, Miller.. (1997)   (8 citations)  (Correct)

....checking that would normally be present. We performed a direct comparison, using MIT Scheme on the HPPA, and found the cost of the type dispatch and overflow checking to be 7 on both the native and C code generators. This can be compared to the figures of an average of 2 and a maximum of 8 in [18]. It is therefore not surprising that the overall measured performance Gambit MIT Scheme 68K 68K Alpha HPPA Boyer 2.30 2.62 2.25 2.10 Browse 2.91 1.90 1.34 1.82 Conform 2.68 3.20 2.74 2.63 Cpstak 1.13 0.95 1.03 0.57 Ctak 2.21 1.17 1.09 0.86 Dderiv 4.15 4.10 3.02 3.99 Deriv 3.85 3.61 2.89 3.79 ....

P. Steenkiste and J. Hennessy. Tags and type checking in lisp: Hardware and software approaches. In 2nd Int. Conf. Architectural Support for Programming Languages and Operating Systems (ASPLOS II), pages 50--59, October 1987.


Storage Use Analysis and its Applications - Serrano, Feeley (1996)   (19 citations)  (Correct)

....tagging untagging operations. Heinglein uses type inference while Ayers uses an extended control flow analysis close to our sua. The intended goal is more than compile time type check reductions. Appel claims the use of tag bits leads to inefficiency [1] Steenkiste and Henessy evaluate, in [30], at 25 the cost of type checking and tagging operations for classical Lisp applications. We think this time figure is an upper bound of the real cost. Classical data flow optimization (such as copy propagation) removes most type checks and, for smart runtime design, tagging and untagging ....

P.A. Steenkiste and J. Hennessy. Tags and Type Checking in LISP: Hardware and Software Approaches. In Architectural support for programming languages and operating systems, pages 50--59, Palo Alto. CA US, 1987.


Adaptive Optimization For Self: Reconciling High Performance With .. - Hölzle (1994)   (14 citations)  (Correct)

....Figure 7 16. Percentage of execution time spent in type tests for SELF 93 Geomean UI3 UI1 Typeinf Mango CecilInt CecilComp Richards PrimMaker DeltaBlue 0 5 10 15 20 25 30 dispatch tests inlined tests 84 11 to 24 of execution time being spent in tag handling for Lisp on the MIPS X [121], and Taylor reported that 12 to 35 of all instructions involved tag checks on the SPUR machine (which was a tagged architecture) 126] In conclusion, type feedback reduces the number of type tests, the amount of work (path length) per type test, and the total execution time spend in type ....

Peter Steenkiste and John Hennessy. Tags and type checking in LISP: Hardware and Software Approaches. In ASPLOS II Conference Proceedings, October 1987.


Design And Analysis Of Hardware For High Performance.. - Holmer, Sano, Carlton, .. (1994)   (1 citation)  (Correct)

....so general purpose computations are not affected by Prolog s use of tags. Tag values fixed by the hardware are those for non negative integers (0000) and negative integers (1111) This selection of tags for integers is a common technique used by Lisp implementations on general purpose machines [26]. We have also fixed the tag value for variable pointers (tvar = 0001) to increase the number of bits available for branch displacements in several Prolog specific instructions. 3 All other tag values are software defined. Our Prolog implementation uses tags similar to those of the WAM. 2.2. ....

....of WAM execution statistics. In this section we give a more rigorous validation of the architectural design and instruction selection by analyzing the cost and performance benefits of each special purpose feature and instruction. There has been some work to determine such results for other designs [10, 11, 24, 26], but the analysis presented here is more complete. 5.1. Cost of Features Table 5.1 shows the implementation cost of those features that extend the VLSIBAM beyond a general purpose architecture. Implementation cost is expressed in terms of chip area required to implement the feature and in terms ....

P. Steenkiste and J. Hennessy. Tags and type checking in LISP: Hardware and software approaches. In Second Symposium on Architectural Support for Programming Languages and Operating Systems (ASPLOS II), pages 50--59, October 1987.


Representing Type Information in Dynamically Typed Languages - Gudeman (1993)   (19 citations)  (Correct)

....the pair of tags is referred to collectively as the sign extension tag . Note that this scheme also rules out the use of 0b0000 as a pointer tag. The problem with tagging integers by sign extension is that it makes the isint( operation more expensive. There are several possible implementations ([20] discusses some options not discussed here) The most obvious one is to test the two in sequence: #define isint(v) v 28) 0b0000 (v 28) 0b1111 The cost of this is 1 for the right shift (assume that this is done once and the result is cached in a register) and 1 for the first ....

....Cm and C d are the numbers of machine cycles needed for a multiply and a divide, respectively. From tables 1, 2 and 3 it appears that there is a noticeable advantage to tagging values in the low end of the word rather than the high end. 2.3. 3 Testing After the Operation It has been suggested [20] that addition of tagged integers can be improved by using an integer tag such that when two tagged integers are added directly, the result is the correctly tagged integer result of the operation (tagging integers by sign extension or by all zeros in the low end) and choosing the other tags in ....

Peter Steenkiste and John Hennessy. "Tags and type checking in LISP: hardware and software approaches". In Proceedings of the Second International Conference on Architectural Support for Programming Languages and Operating Systems, pages 50--59. Computer Society Press of the IEEE, October 1987.


Fast Prolog with an Extended General Purpose Architecture - Holmer, Sano, Carlton.. (1994)   (6 citations)  (Correct)

....so general purpose computations are not affected by Prolog s use of tags. Tag values fixed by the hardware are those for non negative integers (0000) and negative integers (1111) This selection of tags for integers is a common technique used by Lisp implementations on general purpose machines [21]. We have also fixed the tag value for variable pointers (tvar = 0001) to increase the number of bits available for branch displacements in several Prolog specific instructions. All other tag values are software defined. Our Prolog implementation uses tags similar to those of the WAM. 2.2 ....

....of WAM execution statistics. In this section we give a more rigorous validation of the architectural design and instruction selection by analyzing the cost and performance benefits of each special purpose feature and instruction. There has been some work to determine such results for other designs [19, 9, 21], but no complete analysis has been done. Appeared in the 17th International Symposium on Computer Architecture 9 Feature Active area Design complexity Instructions affected segment mapping 4.8 100 compiled tagged immediate 2.2 100 compiled ldi, cmpi, sti, stid, lea, uni double word ....

P. Steenkiste and J. Hennessy. Tags and type checking in LISP: Hardware and software approaches. In Second Symposium on Architectural Support for Programming Languages and Operating Systems (ASPLOS II), pages 50--59, Oct. 1987.


the Garbage Collection Bibliography - Richard Jones (2003)   (Correct)

No context found.

Peter Steenkiste and John Hennessy. Tags and type checking in LISP: Hardware and software approaches. In ASPLOS [ASPLOS1987], pages 50--59.


Do Object-Oriented Languages Need Special Hardware Support? - Hölzle, Ungar (1995)   (6 citations)  (Correct)

No context found.

Peter Steenkiste and John Hennessy. Tags and type checking in LISP: Hardware and Software Approaches. In ASPLOS II Conference Proceedings, October 1987.

Online articles have much greater impact   More about CiteSeer.IST   Add search form to your site   Submit documents   Feedback  

CiteSeer.IST - Copyright Penn State and NEC