Abstract
This paper presents the Multimedia C language, which is appropriate for the multimedia extensions included in all modern microprocessors. The paper discusses the language syntax, the implementation of its compiler and its use in developing multimedia applications. The goal was to provide programmers with the most natural way of using multimedia processing facilities in the C language.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Bacon, D.F., Graham, S.L., Sharp, O.J.: Compiler Transformations for High- Performance Computing. ACM Computing Surveys 26(4), 345–420 (1994)
Bik, A.J.C., Girkar, M., Grey, P.M., Tian, X.M.: Automatic Intra-Register Vectorization for the Intel (R) Architecture. International Journal of Parallel Programming 30(2), 65–98 (2002)
Bulić, P., Guštin, V.: Introducing the Vector C. In: Palma, J.M.L.M., Sousa, A.A., Dongarra, J., Hernández, V. (eds.) VECPAR 2002. LNCS, vol. 2565, pp. 608–622. Springer, Heidelberg (2003)
Bulić, P., Guštin, V.: An Extended ANSI C for Processors with a Multimedia Extension. International Journal of Parallel Programming 31(2), 107–136 (2003)
Calland, P.Y., Darte, A., Robert, Y., Vivien, F.: On the Removal of Anti- and Output- Dependences. International Journal of Parallel Programming 26(3), 285–312 (1998)
Corbera, F., Asenjo, R., Zapata, E.: New Shape Analysis and Interprocedural Techniques for Automatic Parallelization of C Codes. International Journal of Parallel Programming 30(1), 37–63 (2002)
Dennis, J.B.: Machines and Models for Parallel Computing. International Journal of Parallel Programming 22(1), 44–77 (1994)
Fisher, R.: Compiling for SIMD Within a Register. In: Carter, L., Ferrante, J., Sehr, D., Chatterjee, S., Prins, J.F., Li, Z., Yew, P.-C. (eds.) LCPC 1998. LNCS, vol. 1656, pp. 290–304. Springer, Heidelberg (1999)
Gaissaryan, S., Lastovetsky, A.: An ANSI C for Vector and Superscalar Computers and Its Retargetable Compiler. Journal of C Language Translation 5(3), 183–198 (1994)
Griebl, M., Feautrier, P., Lengauer, C.: Index Set Splitting. International Journal of Parallel Programming 28(6), 607–631 (2000)
Gupta, M., Mukhopadhyay, S., Sinha, N.: Automatic Parallelization of Recursive Procedures. International Journal of Parallel Programming 28(6), 537–562 (2000)
Guštin, V., Bulić, P.: Extracting SIMD Parallelism from ”for” Loops. In: Proceedings of the 2001 ICPP Workshop on HPSECA, ICPP Conference, Valencia, Spain, September 3–7, pp. 23–28 (2001)
John, A., Brown, J.C.: Compilation of Constraint Programs with Noncyclic and Cyclic Dependences to Procedural Parallel Programs. International Journal of Parallel Programming 26(1), 65–119 (1998)
Kalinov, A.Y., Lastovetsky, A.L., Ledovskih, I.N., Posypkin, M.A.: Refined Description of the C[] Language. Programming and Computer Software 28(6), 333–341 (2000)
Kennedy, K.: Compiler Technology for Machine-Independent Parallel Programming. International Journal of Parallel Programming 22(1), 79–98 (1994)
Kessler, C.W., Seidl, H.: The Fork95 Parallel Programming Language: Design, Implementation, Application. International Journal of Parallel Programming 25(1), 17–50 (1997)
Krall, A., Lelait, S.: Compilation Techniques for Multimedia Processors. International Journal of Parallel Programming 28(4), 347–361 (2000)
Kuroda, I., Nishitani, T.: Multimedia Processors. Proceedings of the IEEE 86(6), 1203–1221 (1998)
Larsen, S., Amarasinghe, S.: Exploiting Superword Level Parallelism with Multimedia Instruction Sets. In: Processing of the SIGPLAN 2000 Conference on programming Language Design Implementation, Vancouver, B.C. (June 2000), http://www.cog.lcs.mit.edu/slp/SLP-PLDI-2000.pdf
Lee, R.: Accelerating Multimedia with Enhanced Processors. IEEE Micro 15(2), 22–32 (1995)
Li, K.C., Schwetman, H., Vector, C.: A Vector Processing Language. Journal of Parallel and Distributed Computing (2), 132–169 (1985)
Li, K.C.: A note on the vector C language. ACM SIGPLAN Notices 21(1), 49–57 (1986)
Mitall, M., Peleg, A., Weiser, U.: MMX Technology Architecture Overview. Intel Technology Journal (1997)
Oberman, S., Favor, G., Weber, F.: AMD 3DNow! Technology: Architecture and Implementation. IEEE Micro 19(2), 37–48 (1999)
Peleg, A., Weiser, U.: MMX Technology Extension to the Intel Architecture. IEEE Micro 16(4), 42–50 (1996)
Rose J.R., Steele G.L.: C* : An extended C Language for Data Parallel Programming. In: Proceedings of the Second International Conference on Supercomputing ICS 1987 May 1987, pp. 2–16 (1987)
Sarkar, V.: Optimized Unrolling of Nested Loops. International Journal of Parallel Programming 29(5), 545–581 (2001)
Sreraman, N., Govindarajan, R.: A Vectorizing Compiler for Multimedia Extensions. International Journal of Parallel Programming 28(4), 363–400 (2000)
Tsai, J.Y., Jiang, Z., Yew, P.C.: Compiler Techniques for the Superthreaded Architectures. International Journal of Parallel Programming 27(1), 1–19 (1999)
Wolfe, M.J., Banerjee, U.: Data Dependence and its Application to Parallel Processing. International Journal of Parallel Programming 16(2), 137–178 (1987)
Wolfe, M.J., Banerjee, U.: The C[] Language Specification, http://www.ispras.ru/~cbr/cbrsp.html
Wolfe, M.J., Banerjee, U.: Intel C++ Compiler for Linux 6.0, http://www.intel.com/software/products/compilers/c60l/
Wolfe, M.J., Banerjee, U.: Pentium (R) II Processor Application Notes, MMX (TM) Technology C Intrinsics, http://developer.intel.com/technology/collateral/pentiumii/907/907.htm
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Bulić, P., Gustin, V., Pipan, L. (2003). An Extended ANSI C for Multimedia Processing. In: Malyshkin, V.E. (eds) Parallel Computing Technologies. PaCT 2003. Lecture Notes in Computer Science, vol 2763. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-45145-7_40
Download citation
DOI: https://doi.org/10.1007/978-3-540-45145-7_40
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-40673-0
Online ISBN: 978-3-540-45145-7
eBook Packages: Springer Book Archive