David Menendez

dblp:121/8925 · DBLP profile ↗
← Back
12ranked-venue papers
7as first author
5since 2021 · last 2025
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Artificial intelligence and machine learning · 8 · 4 first-author · 5 since 2021Applied, interdisciplinary, general and emerging computing · 8 · 4 first-author · 5 since 2021Software engineering, systems software and programming languages · 4 · 3 first-author
YearPublicationVenuePosition
2025 Cognition in Action: The relation between physical and mental paper folding in young children
David Menendez, Samuel Halama, Taylor Johnson, Karl S. Rosengren
CogSci1
2025 U.S. adults' beliefs and explanations about health disparities
David Menendez, Danielle Labotka, Valerie A. Umscheid, Susan A. Gelman
CogSci1
2025 Once Upon a Goodbye: Exploring How Animated Films Spark Child-Caregiver Conversations About Death
David Menendez
CogSci2
2023 Teacher Attitudes on Inheritance Diagram Features
Olympia N. Mathiaparanam, Andrea Donovan, David Menendez, Collin Jones, Seung Heon Yoo, Martha W. Alibali, Charles W. Kalish, Karl S. Rosengren
CogSci3
2022 Perceptual Features in Visual Representations: A Content Analysis of Inheritance Diagrams
Olympia N. Mathiaparanam, Andrea Donovan, David Menendez, Collin Jones, Seung Heon Yoo, Martha W. Alibali, Charles W. Kalish, Karl S. Rosengren
CogSci3
2020 Characteristics of Visualizations and Texts in Elementary School Biology Books
David Menendez, Taylor Johnson, Ryan Hassett, Ashley Haut, Olympia N. Mathiaparanam, Martha W. Alibali, Karl S. Rosengren
CogSci1
2018 How do people evaluate problem-solving strategies? Efficiency and intuitiveness matter
Sarah A. Brown, David Menendez, Martha W. Alibali
CogSci2
2018 Effects of priming variability on adults learning about metamorphosis
David Menendez, Martha W. Alibali, Karl S. Rosengren
CogSci1
2017 Alive-Infer: data-driven precondition inference for peephole optimizations in LLVM
abstract
Peephole optimizations are a common source of compiler bugs. Compiler developers typically transform an incorrect peephole optimization into a valid one by strengthening the precondition. This process is challenging and tedious. This paper proposes Alive-Infer, a data-driven approach that infers preconditions for peephole optimizations expressed in Alive. Alive-Infer generates positive and negative examples for an optimization, enumerates predicates on-demand, and learns a set of predicates that separate the positive and negative examples. Alive-Infer repeats this process until it finds a precondition that ensures the validity of the optimization. Alive-Infer reports both a weakest precondition and a set of succinct partial preconditions to the developer. Our prototype generates preconditions that are weaker than LLVM’s preconditions for 73 optimizations in the Alive suite. We also demonstrate the applicability of this technique to generalize 54 optimization patterns generated by Souper, an LLVM IR–based superoptimizer.
David Menendez, Santosh Nagarakatte
PLDI1
2016 Termination-checking for LLVM peephole optimizations
abstract
Mainstream compilers contain a large number of peephole optimizations, which perform algebraic simplification of the input program with local rewriting of the code. These optimizations are a persistent source of bugs. Our recent research on Alive, a domain-specific language for expressing peephole optimizations in LLVM, addresses a part of the problem by automatically verifying the correctness of these optimizations and generating C++ code for use with LLVM.
David Menendez, Santosh Nagarakatte
ICSE1
2016 Alive-FP: Automated Verification of Floating Point Based Peephole Optimizations in LLVM
David Menendez, Santosh Nagarakatte, Aarti Gupta
SAS1
2015 Provably correct peephole optimizations with alive
abstract
Compilers should not miscompile. Our work addresses problems in developing peephole optimizations that perform local rewriting to improve the efficiency of LLVM code. These optimizations are individually difficult to get right, particularly in the presence of undefined behavior; taken together they represent a persistent source of bugs. This paper presents Alive, a domain-specific language for writing optimizations and for automatically either proving them correct or else generating counterexamples. Furthermore, Alive can be automatically translated into C++ code that is suitable for inclusion in an LLVM optimization pass. Alive is based on an attempt to balance usability and formal methods; for example, it captures---but largely hides---the detailed semantics of three different kinds of undefined behavior in LLVM. We have translated more than 300 LLVM optimizations into Alive and, in the process, found that eight of them were wrong.
Nuno P. Lopes, David Menendez, Santosh Nagarakatte, John Regehr
PLDI2