[PATCH] Disable DAGCombine for -O0 and optnone

Oleg Ranevskyy llvm.mail.list at gmail.com
Mon May 25 08:00:39 PDT 2015


Hi probinson, echristo, grosbach,

Yet another attempt to disable DAGCombine for -O0 and optnone for better debugging experience.

Some additional info on the subject can be found in D7181, D8614 and in PR22346.

The previous attempt has been reverted due to the failures in instruction selection, which depends on the transforms done from DAGCombine. DAGCombine calls LegalizeOp that performs transformations such as ConstantPool -> <TargetConstantPool + Wrapper> and others. Their absence breaks instruction selection.

The patch disables combine leaving LegalizeOp enabled to satisfy instruction selection. The dependent tests were adjusted to reflect the changes in the code generated w/o combine.
I might be missing some important points so would like to have a sharp community's eye on this and hear any concerns / criticism about the patch.

REPOSITORY
  rL LLVM

http://reviews.llvm.org/D9992

Files:
  lib/CodeGen/SelectionDAG/DAGCombiner.cpp
  test/CodeGen/AArch64/aarch64_f16_be.ll
  test/CodeGen/AArch64/and-mask-removal.ll
  test/CodeGen/ARM/Windows/alloca.ll
  test/CodeGen/ARM/alloc-no-stack-realign.ll
  test/CodeGen/ARM/big-endian-ret-f64.ll
  test/CodeGen/ARM/vst3.ll
  test/CodeGen/X86/atomic16.ll
  test/CodeGen/X86/atomic32.ll
  test/CodeGen/X86/atomic6432.ll
  test/CodeGen/X86/dag-optnone.ll
  test/CodeGen/X86/fast-isel-gep.ll
  test/CodeGen/X86/fastmath-optnone.ll
  test/CodeGen/X86/inline-asm-tied.ll
  test/CodeGen/X86/musttail.ll
  test/CodeGen/X86/switch.ll
  test/CodeGen/X86/win32_sret.ll
  test/CodeGen/X86/win64_eh.ll
  test/CodeGen/XCore/threads.ll
  test/DebugInfo/ARM/line.test
  test/DebugInfo/X86/op_deref.ll
  test/DebugInfo/X86/vla.ll
  test/tools/llvm-symbolizer/ppc64.test

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D9992.26436.patch
Type: text/x-patch
Size: 28675 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150525/43d58fe8/attachment.bin>


More information about the llvm-commits mailing list