- Aug 28, 2013
-
-
Hal Finkel authored
When unrolling is disabled in the pass manager, the loop vectorizer should also not unroll loops. This will allow the -fno-unroll-loops option in Clang to behave as expected (even for vectorizable loops). The loop vectorizer's -force-vector-unroll option will (continue to) override the pass-manager setting (including -force-vector-unroll=0 to force use of the internal auto-selection logic). In order to test this, I added a flag to opt (-disable-loop-unrolling) to force disable unrolling through opt (the analog of -fno-unroll-loops in Clang). Also, this fixes a small bug in opt where the loop vectorizer was enabled only after the pass manager populated the queue of passes (the global_alias.ll test needed a slight update to the RUN line as a result of this fix). llvm-svn: 189499
-
- Aug 13, 2013
-
-
Arnold Schwaighofer authored
llvm-svn: 188285
-
Arnold Schwaighofer authored
I have moved this logic into clang and opt. llvm-svn: 188281
-
- Aug 06, 2013
-
-
Tom Stellard authored
Patch by: Mei Ye llvm-svn: 187764
-
- Aug 02, 2013
-
-
Nadav Rotem authored
llvm-svn: 187628
-
- Aug 01, 2013
-
-
Nadav Rotem authored
llvm-svn: 187595
-
- Jul 27, 2013
-
-
Tom Stellard authored
Merge consecutive if-regions if they contain identical statements. Both transformations reduce number of branches. The transformation is guarded by a target-hook, and is currently enabled only for +R600, but the correctness has been tested on X86 target using a variety of CPU benchmarks. Patch by: Mei Ye llvm-svn: 187278
-
- Jun 24, 2013
-
-
Chandler Carruth authored
CGSCC pass manager. This should insulate the inlining decisions from the vectorization decisions, however it may have both compile time and code size problems so it is just an experimental option right now. Adding this based on a discussion with Arnold and it seems at least worth having this flag for us to both run some experiments to see if this strategy is workable. It may solve some of the regressions seen with the loop vectorizer. llvm-svn: 184698
-
- Jun 20, 2013
-
-
Meador Inge authored
This commit completely removes what is left of the simplify-libcalls pass. All of the functionality has now been migrated to the instcombine and functionattrs passes. The following C API functions are now NOPs: 1. LLVMAddSimplifyLibCallsPass 2. LLVMPassManagerBuilderSetDisableSimplifyLibCalls llvm-svn: 184459
-
- Jun 17, 2013
-
-
Nadav Rotem authored
llvm-svn: 184089
-
Nadav Rotem authored
llvm-svn: 184084
-
- Jun 07, 2013
-
-
Nadav Rotem authored
Jeffrey Yasskin volunteered to benchmark the vectorizer on -O2 or -Os when compiling chrome. This patch adds a new flag to enable vectorization on all levels and not only on -O3. It should go away once we make a decision. llvm-svn: 183456
-
- May 01, 2013
-
-
Filip Pizlo authored
the things, and renames it to CBindingWrapping.h. I also moved CBindingWrapping.h into Support/. This new file just contains the macros for defining different wrap/unwrap methods. The calls to those macros, as well as any custom wrap/unwrap definitions (like for array of Values for example), are put into corresponding C++ headers. Doing this required some #include surgery, since some .cpp files relied on the fact that including Wrap.h implicitly caused the inclusion of a bunch of other things. This also now means that the C++ headers will include their corresponding C API headers; for example Value.h must include llvm-c/Core.h. I think this is harmless, since the C API headers contain just external function declarations and some C types, so I don't believe there should be any nasty dependency issues here. llvm-svn: 180881
-
- Apr 23, 2013
-
-
Eric Christopher authored
or the C++ files themselves. This enables people to use just a C compiler to interoperate with LLVM. llvm-svn: 180063
-
- Apr 16, 2013
-
-
Nadav Rotem authored
SLPVectorizer: Make it a function pass and add code for hoisting the vector-gather sequence out of loops. llvm-svn: 179562
-
- Apr 15, 2013
-
-
Nadav Rotem authored
Add an option -vectorize-slp-aggressive for running the BB vectorizer. Make -fslp-vectorize run the slp-vectorizer. llvm-svn: 179508
-
Nadav Rotem authored
llvm-svn: 179505
-
- Mar 10, 2013
-
-
Nick Lewycky authored
llvm-svn: 176793
-
- Mar 06, 2013
-
-
Andrew Trick authored
Always print options that differ from their implicit default. At least for simple option types. llvm-svn: 176572
-
Andrew Trick authored
This way, clang -mllvm -print-options shows that the driver is overriding it. llvm-svn: 176569
-
- Jan 29, 2013
-
-
Hal Finkel authored
Because BBVectorize may significantly shorten a loop body, unroll again after vectorization. This is especially important when using runtime or partial unrolling. llvm-svn: 173730
-
- Jan 07, 2013
-
-
Chandler Carruth authored
builder these days, and this thing hasn't seen updates for a very long time. llvm-svn: 171741
-
- Jan 04, 2013
-
-
Nadav Rotem authored
Move the loop vectorizer from O2 to O3. It looks like the increase in code size actually hurts the performance on many programs. llvm-svn: 171471
-
- Dec 21, 2012
-
-
Roman Divacky authored
llvm-svn: 170902
-
- Dec 19, 2012
-
-
Nadav Rotem authored
Enable the loop vectorizer in clang and not in the pass manager, so that we can disable it in clang. llvm-svn: 170470
-
- Dec 18, 2012
-
-
Nadav Rotem authored
llvm-svn: 170416
-
- Dec 15, 2012
-
-
NAKAMURA Takumi authored
llvm-svn: 170267
-
- Dec 14, 2012
-
-
Nadav Rotem authored
llvm-svn: 170246
-
Nadav Rotem authored
llvm-svn: 170172
-
Nadav Rotem authored
llvm-svn: 170166
-
Nadav Rotem authored
llvm-svn: 170162
-
Nadav Rotem authored
Enable the Loop Vectorizer by default for O2 and O3. Disable if-conversion by default. I plan to revert this patch later today. llvm-svn: 170157
-
- Dec 12, 2012
-
-
Nadav Rotem authored
LoopVectorizer: Use the "optsize" attribute to decide if we are allowed to increase the function size. llvm-svn: 170004
-
Nadav Rotem authored
LoopVectorizer: When -Os is used, vectorize only loops that dont require a tail loop. There is no testcase because I dont know of a way to initialize the loop vectorizer pass without adding an additional hidden flag. llvm-svn: 169950
-
- Dec 10, 2012
-
-
Nadav Rotem authored
llvm-svn: 169774
-
- Dec 03, 2012
-
-
Chandler Carruth authored
Sooooo many of these had incorrect or strange main module includes. I have manually inspected all of these, and fixed the main module include to be the nearest plausible thing I could find. If you own or care about any of these source files, I encourage you to take some time and check that these edits were sensible. I can't have broken anything (I strictly added headers, and reordered them, never removed), but they may not be the headers you'd really like to identify as containing the API being implemented. Many forward declarations and missing includes were added to a header files to allow them to parse cleanly when included first. The main module rule does in fact have its merits. =] llvm-svn: 169131
-
- Nov 29, 2012
-
-
Nadav Rotem authored
llvm-svn: 168928
-
- Nov 15, 2012
-
-
Dmitri Gribenko authored
llvm-svn: 168049
-
- Oct 30, 2012
-
-
Nadav Rotem authored
llvm-svn: 167036
-
- Oct 29, 2012
-
-
Nadav Rotem authored
llvm-svn: 166948
-