Nadav Rotem
3d4c6351cf
Improve the X86 cost model for loads and stores.
...
llvm-svn: 170830
2012-12-21 01:33:59 +00:00
Nadav Rotem
ec327f0de1
BB-Vectorizer: Check the cost of the store pointer type
...
and not the return type, which is void. A number of test
cases fail after adding the assertion in TTImpl.
llvm-svn: 170828
2012-12-21 01:24:36 +00:00
Reed Kotler
6050530b1f
Add test case for r170674
...
llvm-svn: 170823
2012-12-21 00:55:10 +00:00
Reed Kotler
d8213f114a
Call llvm_unreachable instead of assert.
...
llvm-svn: 170822
2012-12-21 00:44:59 +00:00
Sean Silva
3101c69a79
docs: More robust image scaling fix.
...
Hopefully these benchmarks will be updated in the future, so avoid
hardcoding image dimensions.
llvm-svn: 170819
2012-12-21 00:28:42 +00:00
Sean Silva
deea25e239
docs: Prevent image scaling.
...
Tell the image to be its natural size.
llvm-svn: 170816
2012-12-21 00:20:25 +00:00
Nadav Rotem
80fefbe978
Fix a bug in the code that checks if we can vectorize loops while using dynamic
...
memory bound checks. Before the fix we were able to vectorize this loop from
the Livermore Loops benchmark:
for ( k=1 ; k<n ; k++ )
x[k] = x[k-1] + y[k];
llvm-svn: 170811
2012-12-21 00:07:35 +00:00
Eric Christopher
834b831d7d
Move these files over to the debug info directory.
...
llvm-svn: 170810
2012-12-21 00:03:42 +00:00
Sean Silva
f8dea516c3
docs: Try out nosidebar.
...
Please squawk if you find this appalling or otherwise don't like it.
llvm-svn: 170803
2012-12-20 23:35:22 +00:00
Sean Silva
4fd7ae0dec
docs: Cleanup trailing whitespace.
...
llvm-svn: 170799
2012-12-20 22:59:36 +00:00
Jakob Stoklund Olesen
c000c3d36d
Require the two-argument MI::addOperand(MF, MO) for dangling instructions.
...
Instructions that are inserted in a basic block can still be decorated
with addOperand(MO).
Make the two-argument addOperand() function contain the actual
implementation. This function will now always have a valid MF reference
that it can use for memory allocation.
llvm-svn: 170798
2012-12-20 22:54:05 +00:00
Jakob Stoklund Olesen
c81d04b28d
Add an MF argument to MI::copyImplicitOps().
...
This function is often used to decorate dangling instructions, so a
context reference is required to allocate memory for the operands.
Also add a corresponding MachineInstrBuilder method.
llvm-svn: 170797
2012-12-20 22:54:02 +00:00
Jakob Stoklund Olesen
ae8ba671bc
Use two-arg addOperand(MF, MO) internally in MachineInstr when possible.
...
llvm-svn: 170796
2012-12-20 22:53:58 +00:00
Jakob Stoklund Olesen
6e5b46e8fb
MachineInstrBuilderize ARM.
...
llvm-svn: 170795
2012-12-20 22:53:55 +00:00
Jakob Stoklund Olesen
bbac7014e0
MachineInstrBuilderize NVPTX.
...
llvm-svn: 170794
2012-12-20 22:53:53 +00:00
Eli Bendersky
b205b36a9a
Fix an unitialized member variable that may have caused sporadic failures
...
for code that wasn't even in bundling mode.
llvm-svn: 170793
2012-12-20 22:51:52 +00:00
Sean Silva
e13a7de1ee
docs: actually indent these consistently
...
llvm-svn: 170792
2012-12-20 22:49:13 +00:00
Sean Silva
24e57a087b
docs: Indent consistently in code examples.
...
llvm-svn: 170791
2012-12-20 22:47:41 +00:00
Sean Silva
220e0c5253
docs: Improve navigation for Vectorizers.rst
...
Add links in the intro paragraph.
Add table of contents.
llvm-svn: 170790
2012-12-20 22:42:20 +00:00
Sean Silva
04f52865e6
docs: bring back link for reddit.
...
llvm-svn: 170776
2012-12-20 22:24:37 +00:00
Eric Christopher
537c3f1bc9
Whitespace and 80-column cleanup.
...
llvm-svn: 170771
2012-12-20 21:58:40 +00:00
Eric Christopher
622a4d5b97
Start splitting out the debug string section handling by moving it
...
into the DwarfUnits class.
llvm-svn: 170770
2012-12-20 21:58:36 +00:00
Sean Silva
fbf8cf920e
docs: Make document name congruent with title.
...
Hopefully nobody has linked to it yet...
OK'd by Nadav.
llvm-svn: 170768
2012-12-20 21:50:41 +00:00
Bill Wendling
31f5f9fc8c
Some random comment, naming, and format changes.
...
Rename the AttributeImpl* from Attrs to pImpl to be consistent with other code.
Add comments where none were before. Or doxygen-ify other comments.
llvm-svn: 170767
2012-12-20 21:28:43 +00:00
Jakob Stoklund Olesen
abf1746cb5
Remove two dead functions.
...
llvm-svn: 170766
2012-12-20 21:12:42 +00:00
Bob Wilson
3cae2545eb
Revert "Adding support for llvm.arm.neon.vaddl[su].* and"
...
This reverts r170694. The operations can be represented in IR without
adding any new intrinsics.
llvm-svn: 170765
2012-12-20 21:09:38 +00:00
Nadav Rotem
ccffd4527d
LoopVectorize: Fix a bug in the scalarization of instructions.
...
Before if-conversion we could check if a value is loop invariant
if it was declared inside the basic block. Now that loops have
multiple blocks this check is incorrect.
This fixes External/SPEC/CINT95/099_go/099_go
llvm-svn: 170756
2012-12-20 20:24:40 +00:00
Evan Cheng
536195a2fd
On some ARM cpus, flags setting movs with shifter operand, i.e. lsl, lsr, asr,
...
are more expensive than the non-flag setting variant. Teach thumb2 size
reduction pass to avoid generating them unless we are optimizing for size.
rdar://12892707
llvm-svn: 170728
2012-12-20 19:59:30 +00:00
Eli Bendersky
50e22a71d4
Change Lit error redirection to FileCheck to a more common syntax since it
...
can potentially cause some bots to fail.
llvm-svn: 170726
2012-12-20 19:54:02 +00:00
Eli Bendersky
5420e6ae4a
Add a largish auto-generated test for the aligned bundling feature, along with
...
the script generating it. The test should never be modified manually. If anyone
needs to change it, please change the script and re-run it.
The script is placed into utils/testgen - I couldn't think of a better place,
and after some discussion on IRC this looked like a logical location.
llvm-svn: 170720
2012-12-20 19:16:57 +00:00
Eli Bendersky
49e8321d21
Tests for the aligned bundling support added in r170718
...
llvm-svn: 170719
2012-12-20 19:07:30 +00:00
Eli Bendersky
b0643bbb71
Aligned bundling support. Following the discussion here:
...
http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-December/056754.html
The proposal and implementation are fully documented here:
https://sites.google.com/a/chromium.org/dev/nativeclient/pnacl/aligned-bundling-support-in-llvm
Tests will follow shortly.
llvm-svn: 170718
2012-12-20 19:05:53 +00:00
Jakob Stoklund Olesen
452a1b6831
Use MachineInstrBuilder for PHI nodes in SelectionDAGISel.
...
llvm-svn: 170716
2012-12-20 18:46:29 +00:00
Jim Grosbach
db03224187
Fix inadvertant delete of 'has'.
...
llvm-svn: 170713
2012-12-20 18:09:48 +00:00
Jakob Stoklund Olesen
51accf509d
Use MachineInstrBuilder in InstrEmitter.
...
This is supposed to be a mechanical change with no functional effects.
InstrEmitter can generate all types of MachineOperands which revealed
that MachineInstrBuilder was missing a few methods, added by this patch.
Besides providing a context pointer to MI::addOperand(),
MachineInstrBuilder seems like a better fit for this code.
llvm-svn: 170712
2012-12-20 18:08:09 +00:00
Jakob Stoklund Olesen
203e10c066
Use MachineInstrBuilder in a few CodeGen passes.
...
This automatically passes a context pointer to MI->addOperand().
llvm-svn: 170711
2012-12-20 18:08:06 +00:00
Rafael Espindola
70826f068e
Simplify the testcase a bit.
...
I checked that it would still crash llc before the corresponding fix.
llvm-svn: 170709
2012-12-20 17:47:27 +00:00
Nadav Rotem
759544a715
Loop Vectorizer: turn-off if-conversion.
...
llvm-svn: 170708
2012-12-20 17:42:53 +00:00
James Molloy
de926c367f
Add a new attribute, 'noduplicate'. If a function contains a noduplicate call, the call cannot be duplicated - Jump threading, loop unrolling, loop unswitching, and loop rotation are inhibited if they would duplicate the call.
...
Similarly inlining of the function is inhibited, if that would duplicate the call (in particular inlining is still allowed when there is only one callsite and the function has internal linkage).
llvm-svn: 170704
2012-12-20 16:04:27 +00:00
Roman Divacky
f63db8e20d
Remove MCTargetAsmLexer and its derived classes now that edis,
...
its only user, is gone.
llvm-svn: 170699
2012-12-20 14:43:30 +00:00
Renato Golin
1fbd598908
Adding support for llvm.arm.neon.vaddl[su].* and
...
llvm.arm.neon.vsub[su].* intrinsics.
Patch by Pete Couperus <pjcoup@gmail.com>
llvm-svn: 170694
2012-12-20 13:52:11 +00:00
NAKAMURA Takumi
72d12c87ec
llvmbuild/main.py: Let LibraryDependencies.inc deterministic.
...
FYI, llvm and clang can be built deterministically between stage 2 and stage3, among iterative clean rebuilds, with GNU ar;
configure --disable-timestamps
make AR.Flags=crsD RANLIB=echo
llvm-svn: 170682
2012-12-20 10:35:18 +00:00
Craig Topper
92c3efe257
Formatting fixes. Remove some unnecessary 'else' after 'return'. No functional change.
...
llvm-svn: 170676
2012-12-20 07:15:54 +00:00
Craig Topper
39d7615441
Removing trailing whitespace
...
llvm-svn: 170675
2012-12-20 07:09:41 +00:00
Reed Kotler
186128bbff
Implement cfi_def_cfa_offset. "Make check" test case for this comming in the
...
next few days but it's already tested a lot from test-suite and works fine.
This patch completes almost 100% pass of test-suite for mips 16.
llvm-svn: 170674
2012-12-20 06:59:37 +00:00
Reed Kotler
4796d835c7
There is one more patch to finish large frames. Make sure we assert
...
on code that has large frames which will not yet compile correctly.
llvm-svn: 170673
2012-12-20 06:57:00 +00:00
Jyotsna Verma
d2eb3f84fd
Add constant extender support to GP-relative load/store instructions.
...
llvm-svn: 170672
2012-12-20 06:52:46 +00:00
Jyotsna Verma
cb321ae6c7
Add TSFlags to ALU32 type instructions for constant-extender/Relationship maps.
...
llvm-svn: 170671
2012-12-20 06:45:39 +00:00
Reed Kotler
60c468d16e
set register class properly for mips16 here
...
llvm-svn: 170669
2012-12-20 06:06:35 +00:00
Rafael Espindola
498385090a
Undefine PPC harder.
...
This was causing a build failure while trying to build on ppc ubuntu 12.10 with
cmake.
llvm-svn: 170668
2012-12-20 05:13:09 +00:00