Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Roberto Castañeda Lozano is active.

Publication


Featured researches published by Roberto Castañeda Lozano.


principles and practice of constraint programming | 2012

Constraint-Based register allocation and instruction scheduling

Roberto Castañeda Lozano; Mats Carlsson; Frej Drejhammar; Christian Schulte

This paper introduces a constraint model and solving techniques for code generation in a compiler back-end. It contributes a new model for global register allocation that combines several advanced aspects: multiple register banks (subsuming spilling to memory), coalescing, and packing. The model is extended to include instruction scheduling and bundling. The paper introduces a decomposition scheme exploiting the underlying program structure and exhibiting robust behavior for functions with thousands of instructions. Evaluation shows that code quality is on par with LLVM, a state-of-the-art compiler infrastructure. The paper makes important contributions to the applicability of constraint programming as well as compiler construction: essential concepts are unified in a high-level model that can be solved by readily available modern solvers. This is a significant step towards basing code generation entirely on a high-level model and by this facilitates the construction of correct, simple, flexible, robust, and high-quality code generators.


languages, compilers, and tools for embedded systems | 2014

Combinatorial spill code optimization and ultimate coalescing

Roberto Castañeda Lozano; Mats Carlsson; Gabriel Hjort Blindell; Christian Schulte

This paper presents a novel combinatorial model that integrates global register allocation based on ultimate coalescing, spill code optimization, register packing, and multiple register banks with instruction scheduling (including VLIW). The model exploits alternative temporaries that hold the same value as a new concept for ultimate coalescing and spill code optimization. The paper presents Unison as a code generator based on the model and advanced solving techniques using constraint programming. Thorough experiments using MediaBench and a processor (Hexagon) that are typical for embedded systems demonstrate that Unison: is robust and scalable; generates faster code than LLVM (up to 41% with a mean improvement of 7%); possibly generates optimal code (for 29% of the experiments); effortlessly supports different optimization criteria (code size on par with LLVM). Unison is significant as it addresses the same aspects as traditional code generation algorithms, yet is based on a simple integrated model and robustly can generate optimal code.


compiler construction | 2016

Register allocation and instruction scheduling in Unison

Roberto Castañeda Lozano; Mats Carlsson; Gabriel Hjort Blindell; Christian Schulte

This paper describes Unison, a simple, flexible, and potentially optimal software tool that performs register allocation and instruction scheduling in integration using combinatorial optimization. The tool can be used as an alternative or as a complement to traditional approaches, which are fast but complex and suboptimal. Unison is most suitable whenever high-quality code is required and longer compilation times can be tolerated (such as in embedded systems or library releases), or the targeted processors are so irregular that traditional compilers fail to generate satisfactory code.


principles and practice of constraint programming | 2015

Modeling universal instruction selection

Gabriel Hjort Blindell; Roberto Castañeda Lozano; Mats Carlsson; Christian Schulte

Instruction selection implements a program under compilation by selecting processor instructions and has tremendous impact on the performance of the code generated by a compiler. This paper introduces a graph-based universal representation that unifies data and control flow for both programs and processor instructions. The representation is the essential prerequisite for a constraint model for instruction selection introduced in this paper. The model is demonstrated to be expressive in that it supports many processor features that are out of reach of state-of-the-art approaches, such as advanced branching instructions, multiple register banks, and SIMD instructions. The resulting model can be solved for small to medium size input programs and sophisticated processor instructions and is competitive with LLVM in code quality. Model and representation are significant due to their expressiveness and their potential to be combined with models for other code generation tasks.


software and compilers for embedded systems | 2013

Constraint-based code generation

Roberto Castañeda Lozano; Gabriel Hjort Blindell; Mats Carlsson; Frej Drejhammar; Christian Schulte

Compiler back-ends generate assembly code by solving three main tasks: instruction selection, register allocation and instruction scheduling. We introduce constraint models and solving techniques for these code generation tasks and describe how the models can be composed to generate code in unison. The use of constraint programming, a technique to model and solve combinatorial problems, makes code generation simple, flexible, robust and potentially optimal.


ACM Transactions in Embedded Computing Systems | 2017

Complete and Practical Universal Instruction Selection

Gabriel Hjort Blindell; Mats Carlsson; Roberto Castañeda Lozano; Christian Schulte

In code generation, instruction selection chooses processor instructions to implement a program under compilation where code quality crucially depends on the choice of instructions. Using methods from combinatorial optimization, this paper proposes an expressive model that integrates global instruction selection with global code motion. The model introduces (1) handling of memory computations and function calls, (2) a method for inserting additional jump instructions where necessary, (3) a dependency-based technique to ensure correct combinations of instructions, (4) value reuse to improve code quality, and (5) an objective function that reduces compilation time and increases scalability by exploiting bounding techniques. The approach is demonstrated to be complete and practical, competitive with LLVM, and potentially optimal (w.r.t. the model) for medium-sized functions. The results show that combinatorial optimization for instruction selection is well-suited to exploit the potential of modern processors in embedded systems.


principles and practice of constraint programming | 2015

Erratum to: Modeling Universal Instruction Selection

Gabriel Hjort Blindell; Roberto Castañeda Lozano; Mats Carlsson; Christian Schulte

Erratum to: Chapter 42 in: G. Pesant (Ed.) Principles and Practice of Constraint Programming DOI: 10.1007/978-3-319-23219-5_42


software and compilers for embedded systems | 2014

Optimal general offset assignment

Sven Mallach; Roberto Castañeda Lozano

We present an exact approach to the General Offset Assignment problem arising in the domain of address code generation for application specific and digital signal processors. General Offset Assignment is composed of two subproblems, namely to find a permutation of variables in memory and to select a responsible address register for each access to one of these variables. Our method is a combination of established techniques to solve both subproblems using integer linear programming. To the best of our knowledge, it is the first approach capable of solving almost all instances of the established OffsetStone benchmark set to global optimality within reasonable time. We provide a first comprehensive evaluation of the quality of several state-of-the-art heuristics relative to the optimal solutions.


The Swedish AI Society Workshop May 20-21; 2010; Uppsala University | 2010

Constraint Programming for Random Testing of a Trading System

Roberto Castañeda Lozano


arXiv: Programming Languages | 2014

Survey on Combinatorial Register Allocation and Instruction Scheduling

Roberto Castañeda Lozano; Christian Schulte

Collaboration


Dive into the Roberto Castañeda Lozano's collaboration.

Top Co-Authors

Avatar

Christian Schulte

Royal Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Mats Carlsson

Swedish Institute of Computer Science

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Frej Drejhammar

Swedish Institute of Computer Science

View shared research outputs
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge