[PATCH] D29568: [DAGCombine] Allow vector constant folding of any value type before type legalization

Simon Pilgrim via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Feb 5 12:59:09 PST 2017


RKSimon created this revision.

The patch comes in 2 parts:

1 - it makes use of the SelectionDAG::NewNodesMustHaveLegalTypes flag to tell it when it can safely constant fold illegal types

2 - it correctly resets SelectionDAG::NewNodesMustHaveLegalTypes at the start of each call to SelectionDAGISel::CodeGenAndEmitDAG so all the pre-legalization stages can make use of it - not just the first basic block that gets handled.

Fix for PR30760


Repository:
  rL LLVM

https://reviews.llvm.org/D29568

Files:
  lib/CodeGen/SelectionDAG/SelectionDAG.cpp
  lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
  test/CodeGen/X86/vector-lzcnt-128.ll
  test/CodeGen/X86/vector-lzcnt-256.ll
  test/CodeGen/X86/vector-tzcnt-128.ll
  test/CodeGen/X86/vector-tzcnt-256.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D29568.87162.patch
Type: text/x-patch
Size: 13415 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170205/f19874ca/attachment.bin>


More information about the llvm-commits mailing list