Go to file
Chen Li c0f3a158f0 [LoopUnswitch] Code refactoring to separate trivial loop unswitch and non-trivial loop unswitch in processCurrentLoop()
Summary: The current code in LoopUnswtich::processCurrentLoop() mixes trivial loop unswitch and non-trivial loop unswitch together. It goes over all basic blocks in the loop and checks if a condition is trivial or non-trivial unswitch condition. However, trivial unswitch condition can only occur in the loop header basic block (where it controls whether or not the loop does something at all). This refactoring separate trivial loop unswitch and non-trivial loop unswitch. Before going over all basic blocks in the loop, it checks if the loop header contains a trivial unswitch condition. If so, unswitch it. Otherwise, go over all blocks like before but don't check trivial condition any more since they are not possible to be in the other blocks. This code has no functionality change.

Reviewers: meheff, reames, broune

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D11276

llvm-svn: 242873
2015-07-22 05:26:29 +00:00
clang [modules] Stop performing PCM lookups for all identifiers when building with C++ modules. Instead, serialize a list of interesting identifiers and mark those ones out of date on module import. Avoiding the identifier lookups here gives a 20-30% speedup in builds with large numbers of modules. No functionality change intended. 2015-07-22 02:08:40 +00:00
clang-tools-extra Extend misc-unused-parameters to delete parameters of local functions. 2015-07-20 03:42:38 +00:00
compiler-rt [sanitizer] Implement include_if_exists with process name substitution. 2015-07-21 23:03:13 +00:00
debuginfo-tests New round of fixes for "Always compile debuginfo-tests for the host triple" 2014-10-18 23:47:59 +00:00
libclc R600: Implement accurate double precision sqrt v2 2015-07-10 13:37:08 +00:00
libcxx Remove more commented out code. That is what version control is for. 2015-07-22 04:37:12 +00:00
libcxxabi Remove include directive for the unused libunwind_ext.h. 2015-07-12 14:47:53 +00:00
libunwind libunwind: Introduce __libunwind_config.h. 2015-07-19 15:23:10 +00:00
lld Don't assume ELFFile iterates over the program headers. 2015-07-21 20:46:21 +00:00
lldb Add an Either<T,U> type to lldb_utility which represents a type-safe payload of either one type or another, à la Haskell 2015-07-22 02:06:37 +00:00
llgo [llgo] build llgoi by default 2015-07-21 00:47:18 +00:00
llvm [LoopUnswitch] Code refactoring to separate trivial loop unswitch and non-trivial loop unswitch in processCurrentLoop() 2015-07-22 05:26:29 +00:00
openmp Fix OMPT support for task frames, parallel regions, and parallel regions + loops 2015-07-21 18:03:30 +00:00
polly Update ISL to isl-0.15-61-gcea776f 2015-07-21 12:56:36 +00:00