- 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
<rdar://problem/14292693> llvm-svn: 207191
-
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
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
Instead of passing around loop headers, pass around `LoopData` directly. <rdar://problem/14292693> llvm-svn: 207179
-
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
-
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
-
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
-
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
-
Benjamin Kramer authored
Should unbreak MultiSource/Benchmarks/mediabench/g721/g721encode/encode. llvm-svn: 207145
-
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
-
Richard Smith authored
llvm-svn: 207136
-
Adrian Prantl authored
of the dbg.value. This gets rid of tons of redundant variable DIEs in subscopes. rdar://problem/14874886, rdar://problem/16679936 llvm-svn: 207135
-
Richard Smith authored
rather than by adding an overload and hoping that it's declared before the code that calls it. (In a modules build, it isn't.) llvm-svn: 207133
-
Adrian Prantl authored
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-intrinsics testcase and included source rdar://problem/16679879 http://reviews.llvm.org/D3374 llvm-svn: 207130
-
Andrea Di Biagio authored
This patch: - Adds two new X86 builtin intrinsics ('int_x86_rdtsc' and 'int_x86_rdtscp') as GCCBuiltin intrinsics; - Teaches the backend how to lower the two new builtins; - Introduces a common function to lower READCYCLECOUNTER dag nodes and the two new rdtsc/rdtscp intrinsics; - Improves (and extends) the existing x86 test 'rdtsc.ll'; now test 'rdtsc.ll' correctly verifies that both READCYCLECOUNTER and the two new intrinsics work fine for both 64bit and 32bit Subtargets. llvm-svn: 207127
-
Matt Arsenault authored
llvm-svn: 207126
-
David Blaikie authored
I discovered this const-hole while attempting to coalesnce the Symbol and SymbolMap data structures. There's some pending issues with that, but I figured this change was easy to flush early. llvm-svn: 207124
-
Matheus Almeida authored
llvm-svn: 207123
-
David Blaikie authored
Leak identified by LSan and reported by Kostya Serebryany. Let's get a bit experimental here... in theory our minimum compiler versions support unordered_map. llvm-svn: 207118
-
Tim Northover authored
This matches ARM64 behaviour, which I think is clearer. It also puts all the churn from that difference into one easily ignored commit. llvm-svn: 207116
-
Evgeniy Stepanov authored
Patch by Yuri Gorshenin. llvm-svn: 207115
-
Tim Northover authored
llvm-svn: 207111
-
Tim Northover authored
llvm-svn: 207110
-
Tim Northover authored
llvm-svn: 207109
-