This is an archive of the discontinued LLVM Phabricator instance.

Experimental changes for evaluating the code size impact of our MCU work
AbandonedPublic

Authored by DavidKreitzer on Mar 2 2016, 7:57 AM.

Details

Summary

Please review these experimental changes that enable us to measure the impact of our various code size optimizations in a recent LLVM trunk. My approach was to DISABLE everything by default and add command line controls as necessary to selectively enable individual optimizations.

I am in the process of running experiments, but at the moment, everything seems to be working fine and showing reasonable results. Here is list of the changed files with the suggested reviewers:

InlineCost.cpp: Zia (inline heuristic change)
PrologEpilogInserter.cpp: Zia (stack symbol ordering)
TargetLowering.cpp: Anton (soft float compares)
X86.td: Andrey (lakemont support)
X86CallFrameOptimization: Zia (store to push)
X86FixupLEAs.cpp: Anton (INC/DEC improvement)
X86ISelDAGToDAG.cpp: Zia (Immediate merging)
X86ISelLowering.cpp: Andrey (lakemont support & avoid integer compare promotion)
X86OptimizeLEAs.cpp: Andrey (LEA optimization)
X86Subtarget.cpp: Andrey (lakemont support)
X86Subtarget.h: Andrey (lakemont support)
X86AsmBackend.cpp: Zia (immediate encodings)
All tools/clang changes: Andrey (-miamcu & lakemont support)

Thanks,

  • Dave

Diff Detail

Event Timeline

DavidKreitzer retitled this revision from to Experimental changes for evaluating the code size impact of our MCU work.
DavidKreitzer updated this object.

Updated inlining changes

Updated diff with additional inlining changes.

DavidKreitzer abandoned this revision.Apr 18 2016, 6:14 AM

Experimental changes no longer needed.