1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-22 12:33:33 +02:00
Commit Graph

86926 Commits

Author SHA1 Message Date
Evan Cheng
af9b73ef6f Fix logic to determine whether to turn a switch into a lookup table. When
the tables cannot fit in registers (i.e. bitmap), do not emit the table
if it's using an illegal type.

rdar://12779436

llvm-svn: 168970
2012-11-30 02:02:42 +00:00
Preston Briggs
52d4891df2 Modified dump() to provide a little
more information for dependences between
instructions that don't share a common loop.

Updated the test results appropriately.

llvm-svn: 168965
2012-11-30 00:44:47 +00:00
Jordan Rose
f630d777a3 Add a new C++11 compatibility macro, LLVM_LVALUE_FUNCTION.
This expands to '&', and is intended to be used when an /optional/ rvalue
override is available.

Before:
  void foo() const { ... }

After:
  void foo() const LLVM_LVALUE_FUNCTION { ... }
  void foo() && { ... }

This is used to allow moving the contents of an Optional.

llvm-svn: 168963
2012-11-30 00:38:53 +00:00
Kevin Enderby
d3ba5ff018 Fixed the arm disassembly of invalid BFI instructions to not build a bad MCInst
which would then cause an assert when printed.  rdar://11437956

llvm-svn: 168960
2012-11-29 23:47:11 +00:00
Eric Christopher
20076dc191 More comment.
llvm-svn: 168952
2012-11-29 22:56:13 +00:00
Dan Gohman
c7892a6f58 Update comment for malloc being a library call now, rather than an instruction.
llvm-svn: 168946
2012-11-29 21:58:47 +00:00
Michael Ilseman
d71b8c4e64 copyFastMathFlags utility and test case
llvm-svn: 168943
2012-11-29 21:25:12 +00:00
Eli Bendersky
73483dbfc6 Add a FileCheck test that makes sure two different CHECKs won't match the
same string

llvm-svn: 168942
2012-11-29 21:24:44 +00:00
Dan Gohman
7f6a368549 Update my email address.
llvm-svn: 168941
2012-11-29 21:17:26 +00:00
Chad Rosier
7c30582956 Whitespace.
llvm-svn: 168937
2012-11-29 20:58:08 +00:00
Chad Rosier
1dbe51ba80 Fix 80-column violations.
llvm-svn: 168936
2012-11-29 20:56:58 +00:00
Benjamin Kramer
178c42a20b Object: Pass the buffer name through when making a copy.
Should bring the buildbots back to life.

llvm-svn: 168935
2012-11-29 20:08:03 +00:00
Quentin Colombet
d96efd313e Add cortex-a5 subtarget to the supported ARM architectures
llvm-svn: 168933
2012-11-29 19:48:01 +00:00
Justin Holewinski
763ffcccbe Cleanup recent addition of DAGTypeLegalizer::SplitVecOp_VSELECT
llvm-svn: 168932
2012-11-29 19:42:09 +00:00
Shuxin Yang
a7c032d8b5 rdar://12100355 (part 1)
This revision attempts to recognize following population-count pattern:

 while(a) { c++; ... ; a &= a - 1; ... },
  where <c> and <a>could be used multiple times in the loop body.

 TODO: On X8664 and ARM, __buildin_ctpop() are not expanded to a efficent 
instruction sequence, which need to be improved in the following commits.

Reviewed by Nadav, really appreciate!

llvm-svn: 168931
2012-11-29 19:38:54 +00:00
Bill Wendling
18531926d1 Handle the situation where CodeGenPrepare removes a reference to a BB that has
the last invoke instruction in the function. This also removes the last landing
pad in an function. This is fine, but with SjLj EH code, we've already placed a
bunch of code in the 'entry' block, which expects the landing pad to stick
around.

When we get to the situation where CGP has removed the last landing pad, go
ahead and nuke the SjLj instructions from the 'entry' block.
<rdar://problem/12721258>

llvm-svn: 168930
2012-11-29 19:38:06 +00:00
Jyotsna Verma
7806a44024 Use multiclass for 'transfer' instructions.
llvm-svn: 168929
2012-11-29 19:35:44 +00:00
Nadav Rotem
e8ebdf63e5 No need to run LICM after loop vectorization because we dont generate invariant code any more.
llvm-svn: 168928
2012-11-29 19:28:29 +00:00
Nadav Rotem
d7449a0a92 When broadcasting invariant scalars into vectors, place the broadcast code in the preheader.
llvm-svn: 168927
2012-11-29 19:25:41 +00:00
Dmitri Gribenko
44ae529695 Documentation for FileCheck: use 'option' and 'program' directives.
This enables option cross-referencing and now '--' in option names are no more turned into en dashes.

llvm-svn: 168926
2012-11-29 19:21:02 +00:00
Meador Inge
3524aece42 instcombine: Migrate puts optimizations
This patch migrates the puts optimizations from the simplify-libcalls
pass into the instcombine library call simplifier.

All the simplifiers from simplify-libcalls have now been migrated to
instcombine.  Yay!  Just a few other bits to migrate (prototype attribute
inference and a few statistics) and simplify-libcalls can finally be put
to rest.

llvm-svn: 168925
2012-11-29 19:15:17 +00:00
Dmitri Gribenko
c560959bc4 Documentation for llvm-link: reformat
llvm-svn: 168924
2012-11-29 19:14:35 +00:00
Jim Grosbach
f1c40fbc49 Fix a memory leak in MachOObjectFile.
MachOObjectFile owns a MachOObj, but never frees it. Both MachOObjectFile
and MachOObj want to own the MemoryBuffer, though, so we have to be careful
and give them each one of their own.

Thanks to Greg Clayton, Eric Christopher and Michael Spencer for helping
figure out what's going wrong here.

rdar://12561773

llvm-svn: 168923
2012-11-29 19:14:11 +00:00
Dmitri Gribenko
04fcb0c6ad Documentation for llvm-cov: reformat
llvm-svn: 168922
2012-11-29 19:10:21 +00:00
Benjamin Kramer
0bcd999459 Follow up to 168711: It's safe to base this analysis on the found compare, just return the value for the right predicate.
Thanks to Andy for catching this.

llvm-svn: 168921
2012-11-29 19:07:57 +00:00
Dmitri Gribenko
403add6293 Documentation for llvm-stress: reformat
llvm-svn: 168920
2012-11-29 19:05:55 +00:00
Dmitri Gribenko
4ec606a8e2 Documentation for opt: reformat
llvm-svn: 168919
2012-11-29 19:02:50 +00:00
Andrew Trick
63817bf5f9 Improve isImpliedCond comment a bit.
llvm-svn: 168914
2012-11-29 18:35:13 +00:00
Alexey Samsonov
880f363d8f [ASan] Simplify check added in r168861. Bail out from module pass early if the module is blacklisted.
llvm-svn: 168913
2012-11-29 18:27:01 +00:00
Dmitri Gribenko
54b0a3d44d Documentation for llc: reformat.
llvm-svn: 168912
2012-11-29 18:16:11 +00:00
Matt Beaumont-Gay
d6d5d4c329 Apply Takumi's patch to suppress unused-variable warnings in -Asserts builds.
llvm-svn: 168911
2012-11-29 18:15:49 +00:00
Alexey Samsonov
cf993b7c27 Add options to AddressSanitizer passes to make them configurable by frontend.
llvm-svn: 168910
2012-11-29 18:14:24 +00:00
Shuxin Yang
fd7c5c30c7 fix a typo
llvm-svn: 168909
2012-11-29 18:09:37 +00:00
Dmitri Gribenko
6bcf44c262 Documentation for lit: more formatting: use 'option' and 'program' directives.
This enables cross-referencing and now '--' in option names are no more turned into en dashes.

llvm-svn: 168906
2012-11-29 18:03:08 +00:00
Pedro Artigas
a84c753671 One more step towards making doInitialization and doFinalization useful for
start up and clean up module passes, now that ASAN and TSAN are fixed the
tests pass

llvm-svn: 168905
2012-11-29 17:47:05 +00:00
Dmitri Gribenko
44a87f27cf Documentation for tblgen: formatting
llvm-svn: 168904
2012-11-29 17:41:05 +00:00
Dmitri Gribenko
ec5e444c18 Documentation for lit: formatting improvements.
llvm-svn: 168902
2012-11-29 17:05:34 +00:00
Patrik Hagglund
59421572c6 Test commit.
llvm-svn: 168899
2012-11-29 16:19:11 +00:00
Dmitri Gribenko
4218de967f Documentation: formatting improvements
llvm-svn: 168897
2012-11-29 16:12:13 +00:00
Meador Inge
95a0f6df53 instcombine: Migrate fputs optimizations
This patch migrates the fputs optimizations from the simplify-libcalls
pass into the instcombine library call simplifier.

llvm-svn: 168893
2012-11-29 15:45:43 +00:00
Meador Inge
787f51971a instcombine: Migrate fwrite optimizations
This patch migrates the fwrite optimizations from the simplify-libcalls
pass into the instcombine library call simplifier.

llvm-svn: 168892
2012-11-29 15:45:39 +00:00
Meador Inge
5553b265a0 instcombine: Migrate fprintf optimizations
This patch migrates the fprintf optimizations from the simplify-libcalls
pass into the instcombine library call simplifier.

llvm-svn: 168891
2012-11-29 15:45:33 +00:00
Evgeniy Stepanov
ce2af94b8e [msan] Handle vector manipulation instructions.
Handle insertelement, extractelement, shufflevector.

llvm-svn: 168889
2012-11-29 15:22:06 +00:00
Evgeniy Stepanov
ee75091c64 [msan] Fix getOriginForNaryOp.
The old version failed on a 3-arg instruction with (-1, 0, 0) shadows (it would
pick the 3rd operand origin irrespective of its shadow).
    
The new version always picks the origin of the rightmost poisoned operand.

llvm-svn: 168887
2012-11-29 14:44:00 +00:00
Silviu Baranga
d93d64a5fd Added atomic 64 min/max/umin/umax instrinsics support in the ARM backend.
llvm-svn: 168886
2012-11-29 14:41:25 +00:00
Benjamin Kramer
1587ffca86 misched: Recompute priority queue when DFSResults are updated.
This was found by MSVC10's STL debug mode on a test from the test suite. Sadly
std::is_heap isn't standard so there is no way to assert this without writing
our own heap verify, which looks like overkill to me.

llvm-svn: 168885
2012-11-29 14:36:26 +00:00
Evgeniy Stepanov
c1edfe7c92 [msan] Basic handling of inline asm.
llvm-svn: 168884
2012-11-29 14:32:03 +00:00
Justin Holewinski
9c8d5cc197 Teach the legalizer how to handle operands for VSELECT nodes
If we need to split the operand of a VSELECT, it must be the mask operand. We
split the entire VSELECT operand with EXTRACT_SUBVECTOR.

llvm-svn: 168883
2012-11-29 14:26:28 +00:00
Justin Holewinski
c9fa05b437 Allow targets to prefer TypeSplitVector over TypePromoteInteger when computing the legalization method for vectors
For some targets, it is desirable to prefer scalarizing <N x i1> instead of promoting to a larger legal type, such as <N x i32>.

llvm-svn: 168882
2012-11-29 14:26:24 +00:00
Evgeniy Stepanov
fafa2ae4b6 [msan] Propagate shadow through (x<0) and (x>=0) comparisons.
This is a special case of signed relational comparison where result
only depends on the sign of x.

llvm-svn: 168881
2012-11-29 14:25:47 +00:00