[all-commits] [llvm/llvm-project] 021685: [Clang] Pragma vectorize_width() implies vectorize...

sjoerdmeijer via All-commits all-commits at lists.llvm.org
Wed Dec 11 02:47:05 PST 2019


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 021685491727e023aeae9ca272a2d6cd727e20e4
      https://github.com/llvm/llvm-project/commit/021685491727e023aeae9ca272a2d6cd727e20e4
  Author: Sjoerd Meijer <sjoerd.meijer at arm.com>
  Date:   2019-12-11 (Wed, 11 Dec 2019)

  Changed paths:
    M clang/lib/CodeGen/CGLoopInfo.cpp
    A clang/test/CodeGenCXX/pragma-loop-pr27643.cpp
    M clang/test/CodeGenCXX/pragma-loop.cpp

  Log Message:
  -----------
  [Clang] Pragma vectorize_width() implies vectorize(enable)

Let's try this again; this has been reverted/recommited a few times. Last time
this got reverted because for this loop:

  void a() {
    #pragma clang loop vectorize(disable)
    for (;;)
      ;
  }

vectorisation was incorrectly enabled and the vectorize.enable metadata was set
due to a logic error. But with this fixed, we now imply vectorisation when:

1) vectorisation is enabled, which means: VectorizeWidth > 1,
2) and don't want to add it when it is disabled or enabled, otherwise we would
   be incorrectly setting it or duplicating the metadata, respectively.

This should fix PR27643.

Differential Revision: https://reviews.llvm.org/D69628




More information about the All-commits mailing list