- Mar 19, 2012
-
-
Lang Hames authored
instructions have been scheduled. Handy for tracking down scheduler bugs, or bugs exposed by scheduling. llvm-svn: 153045
-
Kostya Serebryany authored
[asan] don't emit __asan_mapping_offset/__asan_mapping_scale by default -- they are currently used only for experiments llvm-svn: 153040
-
NAKAMURA Takumi authored
llvm-svn: 153038
-
Duncan Sands authored
llvm-svn: 153035
-
Preston Gurd authored
X86InstrCompiler.td. It also adds –mcpu-generic to the legalize-shift-64.ll test so the test will pass if run on an Intel Atom CPU, which would otherwise produce an instruction schedule which differs from that which the test expects. llvm-svn: 153033
-
Benjamin Kramer authored
llvm-svn: 153031
-
Chandler Carruth authored
violations I introduced. Also sort some of the instructions to get a more consistent ordering. Suggestions on still better / more consistent formatting would be welcome. I'm actually tempted to use a macro to define all of the delegate methods... llvm-svn: 153030
-
Chandler Carruth authored
type hierarchy. I wanted to use this for the inline cost rewrite, and found it was missing. llvm-svn: 153029
-
Nick Lewycky authored
overflow checking multiply intrinsic as well. Add a test for this, updating the test from grep to FileCheck. llvm-svn: 153028
-
- Mar 18, 2012
-
-
Craig Topper authored
llvm-svn: 153027
-
Nick Lewycky authored
Thanks to Eli for noticing the discrepancy. llvm-svn: 153011
-
- Mar 17, 2012
-
-
Benjamin Kramer authored
llvm-svn: 152999
-
Craig Topper authored
Reorder includes in Target backends to following coding standards. Remove some superfluous forward declarations. llvm-svn: 152997
-
Benjamin Kramer authored
This is particularly helpful as both arguments tend to be constants. llvm-svn: 152991
-
Craig Topper authored
llvm-svn: 152981
-
Craig Topper authored
llvm-svn: 152980
-
Craig Topper authored
Pass TargetOptions to HexagonTargetMachine constructor by reference to match other targets and the base class. llvm-svn: 152979
-
Craig Topper authored
llvm-svn: 152978
-
Jim Grosbach authored
evaluated to '1' when the argument list was empty (should be '0'). rdar://11057257 llvm-svn: 152967
-
Bill Wendling authored
fast-isel before emitting code. If the program bails after code was emitted, then it could lead to the stack being adjusted more than once (two CALLSEQ_BEGINs emitted) but being adjuste back only once after the call. This leads to general badness and gnashing of teeth. <rdar://problem/11050630> llvm-svn: 152959
-
- Mar 16, 2012
-
-
Francois Pichet authored
llvm-svn: 152958
-
Chris Lattner authored
llvm-svn: 152957
-
Jim Grosbach authored
rdar://11065671 llvm-svn: 152954
-
Jim Grosbach authored
llvm-svn: 152946
-
Jim Grosbach authored
It's not a good style idea, as the registers will be laid down in memory in numerical order, not the order they're in the list, but it's legal. vldm/vstm are stricter. rdar://11064740 llvm-svn: 152943
-
Bill Wendling authored
llvm-svn: 152935
-
Benjamin Kramer authored
ScheduleDAGInstrs: When adding uses we add them into a set that's empty at the beginning, no need to maintain another set for the added regs. llvm-svn: 152934
-
Benjamin Kramer authored
Saves one machine word on MachineInstr (88->80 bytes on x86_64, 48->44 on i386). llvm-svn: 152930
-
Benjamin Kramer authored
No functionality change. llvm-svn: 152927
-
NAKAMURA Takumi authored
lit/TestRunner.py: [Win32] Check all opened_files[] released, rather than (obsoleted) written_files[]. In previous case, RUN: foo -o %t RUN: FileCheck < %t RUN: bar -o %t 2nd read handle might prevent manipulation of 3rd %t in bar, to remove and rename. llvm-svn: 152916
-
NAKAMURA Takumi authored
We can simply confirm the handle released to open it with EXCLUSIVE. Attempting renaming was bad. llvm-svn: 152915
-
Bill Wendling authored
alignment. If that's the case, then we want to make sure that we don't increase the alignment of the store instruction. Because if we increase it to be "more aligned" than the pointer, code-gen may use instructions which require a greater alignment than the pointer guarantees. <rdar://problem/11043589> llvm-svn: 152907
-
Craig Topper authored
llvm-svn: 152906
-
Chandler Carruth authored
It was added in 2007 as the first cut at supporting no-inline attributes, but we didn't have function attributes of any form at the time. However, it was added without any mention in the LangRef or other documentation. Later on, in 2008, Devang added function notes for 'inline=never' and then turned them into proper function attributes. From that point onward, as far as I can tell, the world moved on, and no one has touched 'llvm.noinline' in any meaningful way since. It's time has now come. We have had better mechanisms for doing this for a long time, all the frontends I'm aware of use them, and this is just holding back progress. Given that it was never a documented feature of the IR, I've provided no auto-upgrade support. If people know of real, in-the-wild bitcode that relies on this, yell at me and I'll add it, but I *seriously* doubt anyone cares. llvm-svn: 152904
-
Chandler Carruth authored
directly query the function information which this set was representing. This simplifies the interface of the inline cost analysis, and makes the always-inline pass significantly more efficient. Previously, always-inline would first make a single set of every function in the module *except* those marked with the always-inline attribute. It would then query this set at every call site to see if the function was a member of the set, and if so, refuse to inline it. This is quite wasteful. Instead, simply check the function attribute directly when looking at the callsite. The normal inliner also had similar redundancy. It added every function in the module with the noinline attribute to its set to ignore, even though inside the cost analysis function we *already tested* the noinline attribute and produced the same result. The only tricky part of removing this is that we have to be able to correctly remove only the functions inlined by the always-inline pass when finalizing, which requires a bit of a hack. Still, much less of a hack than the set of all non-always-inline functions was. While I was touching this function, I switched a heavy-weight set to a vector with sort+unique. The algorithm already had a two-phase insert and removal pattern, we were just needlessly paying the uniquing cost on every insert. This probably speeds up some compiles by a small amount (-O0 compiles with lots of always-inline, so potentially heavy libc++ users), but I've not tried to measure it. I believe there is no functional change here, but yell if you spot one. None are intended. Finally, the direction this is going in is to greatly simplify the inline cost query interface so that we can replace its implementation with a much more clever one. Along the way, all the APIs get simplified, so it seems incrementally good. llvm-svn: 152903
-
Craig Topper authored
Const-correct the FixedLenDecoderEmitter. Pass a few things by const reference instead of value to avoid some copying. llvm-svn: 152899
-
Chandler Carruth authored
analysis implementation. The header was already separated. Also cleanup all the comments in the header to follow a nice modern doxygen form. There is still plenty of cruft here, but some of that will fall out in subsequent refactorings and this was an easy step in the right direction. No functionality changed here. llvm-svn: 152898
-
Andrew Trick authored
These edges are not really necessary, but it is consistent with the way we currently create physreg edges. Scheduler heuristics that expect a DAG edge to the block terminator could benefit from this change. Although in the future I hope we have a better mechanism for modeling latency across scheduling regions. llvm-svn: 152895
-
Andrew Trick authored
Only record IVUsers that are dominated by simplified loop headers. Otherwise SCEVExpander will crash while looking for a preheader. I previously tried to work around this in LSR itself, but that was insufficient. This way, LSR can continue to run if some uses are not in simple loops, as long as we don't attempt to analyze those users. Fixes <rdar://problem/11049788> Segmentation fault: 11 in LoopStrengthReduce llvm-svn: 152892
-
Craig Topper authored
Spacing fixes. Mostly aligning arguments that spilled onto next line with the opening parenthese instead of 2 spaces in. llvm-svn: 152889
-