- Apr 25, 2014
-
-
Duncan P. N. Exon Smith authored
Remove the concepts of "forward" and "general" mass distributions, which was wrong. The split might have made sense in an early version of the algorithm, but it's definitely wrong now. <rdar://problem/14292693> llvm-svn: 207195
-
Duncan P. N. Exon Smith authored
<rdar://problem/14292693> llvm-svn: 207194
-
Duncan P. N. Exon Smith authored
The branch weights were even before. Make them different. <rdar://problem/14292693> llvm-svn: 207193
-
Duncan P. N. Exon Smith authored
Strip irreducible testcases to pure control flow. The function calls made the branch weights more believable but cluttered it up a lot. There isn't going to be any constant analysis here, so just use dumb branch logic to clarify the important parts. <rdar://problem/14292693> llvm-svn: 207192
-
Duncan P. N. Exon Smith authored
<rdar://problem/14292693> llvm-svn: 207191
-
Duncan P. N. Exon Smith authored
<rdar://problem/14292693> llvm-svn: 207190
-
Duncan P. N. Exon Smith authored
Rather than scaling loop headers and then scaling all the loop members by the header frequency, scale `LoopData::Scale` itself, and scale the loop members by it. It's much more obvious what's going on this way, and doesn't cost any extra multiplies. <rdar://problem/14292693> llvm-svn: 207189
-
Duncan P. N. Exon Smith authored
<rdar://problem/14292693> llvm-svn: 207188
-
Duncan P. N. Exon Smith authored
<rdar://problem/14292693> llvm-svn: 207187
-
Duncan P. N. Exon Smith authored
When unwrapping loops, just visit the loops rather than all nodes. <rdar://problem/14292693> llvm-svn: 207186
-
Duncan P. N. Exon Smith authored
<rdar://problem/14292693> llvm-svn: 207185
-
Duncan P. N. Exon Smith authored
<rdar://problem/14292693> llvm-svn: 207184
-
Duncan P. N. Exon Smith authored
Make `getPackagedNode()` a member function of `BlockFrequencyInfoImplBase` so that it's available for templated code. <rdar://problem/14292693> llvm-svn: 207183
-
Duncan P. N. Exon Smith authored
<rdar://problem/14292693> llvm-svn: 207182
-
Duncan P. N. Exon Smith authored
<rdar://problem/14292693> llvm-svn: 207181
-
Duncan P. N. Exon Smith authored
Continue refactoring to make `LoopData` first-class. Here I'm making the `LoopData` hierarchy explicit, instead of bouncing back and forth with `WorkingData`. This simplifies the logic and better matches the `LoopInfo` design. (Eventually, `LoopInfo` should be restructured so that it supports this pass, and `LoopData` can be removed.) <rdar://problem/14292693> llvm-svn: 207180
-
Duncan P. N. Exon Smith authored
Instead of passing around loop headers, pass around `LoopData` directly. <rdar://problem/14292693> llvm-svn: 207179
-
Duncan P. N. Exon Smith authored
A follow-up commit will need the actual iterators. <rdar://problem/14292693> llvm-svn: 207178
-
Duncan P. N. Exon Smith authored
As pointed out by David Blaikie in code review, a `std::list<T>` is simpler than a `std::vector<std::unique_ptr<T>>`. Another option is a `std::deque<T>` (which allocates in chunks), but I'd like to leave open the option of inserting in the middle of the sequence for handling irreducible control flow on the fly. <rdar://problem/14292693> llvm-svn: 207177
-
Craig Topper authored
llvm-svn: 207176
-
Karthik Bhat authored
This patch adds support for vectorization of bit intrinsics such as bswap,ctpop,ctlz,cttz. llvm-svn: 207174
-
Justin Bogner authored
llvm-svn: 207172
-
Reid Kleckner authored
Should fix PR19526. When Oscar added this code in the intial CMake build system port, he had a TODO saying that ${CMAKE_SHARED_LINKER_FLAGS} was probably wrong. I agree. I'm using ${CMAKE_CXX_LINK_FLAGS} to point LLVM at my custom installation of gcc 4.recent, so that seems more correct. With this change, I can build creduce against an installed clang, and it picks up the write flags from --ldflags. llvm-svn: 207171
-
David Blaikie authored
When fixing the symbols in each compressed section we were iterating over all symbols for each compressed section. In extreme cases this could snowball severely (5min uncompressed -> 35min compressed) due to iterating over all symbols for each compressed section (large numbers of compressed sections can be generated by DWARF type units). To address this, build a map of the symbols in each section ahead of time, and access that map if a section is being compressed. This brings compile time for the aforementioned example down to ~6 minutes. llvm-svn: 207167
-
Adrian Prantl authored
Typo in testcase. llvm-svn: 207166
-
Adrian Prantl authored
AllocaInst that was missing in one location. Debug info for optimized code: Support variables that are on the stack and described by DBG_VALUEs during their lifetime. Previously, when a variable was at a FrameIndex for any part of its lifetime, this would shadow all other DBG_VALUEs and only a single fbreg location would be emitted, which in fact is only valid for a small range and not the entire lexical scope of the variable. The included dbg-value-const-byref testcase demonstrates this. This patch fixes this by Local - emitting dbg.value intrinsics for allocas that are passed by reference - dropping all dbg.declares (they are now fully lowered to dbg.values) SelectionDAG - renamed constructors for SDDbgValue for better readability. - fix UserValue::match() to handle indirect values correctly - not inserting an MMI table entries for dbg.values that describe allocas. - lowering dbg.values that describe allocas into *indirect* DBG_VALUEs. CodeGenPrepare - leaving dbg.values for an alloca were they are (see comment) Other - regenerated/updated instcombine.ll testcase and included source rdar://problem/16679879 http://reviews.llvm.org/D3374 llvm-svn: 207165
-
Adrian Prantl authored
This reverts commit 207130 for buildbot breakage. llvm-svn: 207162
-
Adrian Prantl authored
This reverts commit 207130 for buildbot breakage. llvm-svn: 207159
-
Richard Smith authored
llvm-svn: 207158
-
Richard Smith authored
llvm-svn: 207157
-
Alexey Samsonov authored
llvm-svn: 207156
-
Alexey Samsonov authored
[DWARF parser] DWARFUnit ctor doesn't need both parsed and raw .debug_abbrev section. Remove the former. llvm-svn: 207153
-
Alexey Samsonov authored
llvm-svn: 207151
-
- Apr 24, 2014
-
-
Chandler Carruth authored
condition into an obviously infinite loop with an assert about the degenerate condition. No functionality changed. llvm-svn: 207147
-
Chandler Carruth authored
Based on review feedback from Dave on the original patch. llvm-svn: 207146
-
Benjamin Kramer authored
Should unbreak MultiSource/Benchmarks/mediabench/g721/g721encode/encode. llvm-svn: 207145
-
Reid Kleckner authored
MSVC doesn't diagnose this, interestingly. llvm-svn: 207144
-
Reid Kleckner authored
This is similar to the 'tail' marker, except that it guarantees that tail call optimization will occur. It also comes with convervative IR verification rules that ensure that tail call optimization is possible. Reviewers: nicholas Differential Revision: http://llvm-reviews.chandlerc.com/D3240 llvm-svn: 207143
-
Reid Kleckner authored
llvm-svn: 207142
-
Richard Smith authored
llvm-svn: 207136
-