summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* At -O0, emit an @llvm.trap() call at the end of a value-returning function whichRichard Smith2012-10-152-3/+11
| | | | | | fails to return a value, to make debugging this issue easier. llvm-svn: 165914
* Provide a slightly more helpful diagnostic if -fcatch-undefined-behavior findsRichard Smith2012-10-141-0/+6
| | | | | | | a problem with __int128 arithmetic but the runtime was not built with __int128 support. llvm-svn: 165913
* Use a better test for __int128 support, which works on old GCC versions.Richard Smith2012-10-141-1/+1
| | | | llvm-svn: 165912
* Make sure temporary files are deleted when recovering from a crash when ↵Benjamin Kramer2012-10-141-0/+1
| | | | | | compiling modules. llvm-svn: 165911
* Delete temporary output files when an error occurs during PCH reading.Benjamin Kramer2012-10-142-0/+2
| | | | | | | | This reduces the spam make test leaves behind in /tmp. The assert isn't particularly useful because it's not run with -disable-free (the default when using the clang driver) but should cover all -cc1 tests. llvm-svn: 165910
* Update CMake build.Benjamin Kramer2012-10-141-0/+1
| | | | llvm-svn: 165908
* Fix a typo that made ImmutableMap::getMaxElement() useless.Benjamin Kramer2012-10-142-1/+51
| | | | | | Add a basic unit test for ImmutableMap. Found by inspection. llvm-svn: 165907
* Simplify code. No functionality change.Benjamin Kramer2012-10-141-10/+4
| | | | llvm-svn: 165905
* Simplify code. No functionality change.Benjamin Kramer2012-10-141-5/+3
| | | | llvm-svn: 165904
* Unquadratize SetVector removal loops in DSE.Benjamin Kramer2012-10-141-27/+36
| | | | | | | | | Erasing from the beginning or middle of the vector is expensive, remove_if can do it in linear time even though it's a bit ugly without lambdas. No functionality change. llvm-svn: 165903
* Remove dead methods.Bill Wendling2012-10-143-13/+0
| | | | llvm-svn: 165902
* Remove operator cast method in favor of querying with the correct method.Bill Wendling2012-10-141-3/+5
| | | | llvm-svn: 165900
* Remove operator cast method in favor of querying with the correct method.Bill Wendling2012-10-146-23/+39
| | | | llvm-svn: 165899
* Fix use after free when deleting attributes in a chained folding set.Benjamin Kramer2012-10-141-3/+5
| | | | | | Can't follow the intrusive linked list when the element is gone. llvm-svn: 165898
* Don't use the new syntax just yet.Bill Wendling2012-10-141-2/+2
| | | | llvm-svn: 165897
* Remove the bitwise AND operators from the Attributes class. Replace it with ↵Bill Wendling2012-10-145-17/+9
| | | | | | the equivalent from the builder class. llvm-svn: 165896
* Remove the bitwise assignment OR operator from the Attributes class. Replace ↵Bill Wendling2012-10-148-26/+36
| | | | | | it with the equivalent from the builder class. llvm-svn: 165895
* Remove the bitwise OR operator from the Attributes class. Replace it with ↵Bill Wendling2012-10-142-8/+10
| | | | | | the equivalent from the builder class. llvm-svn: 165894
* Remove the bitwise XOR operator from the Attributes class. Replace it with ↵Bill Wendling2012-10-144-8/+6
| | | | | | the equivalent from the builder class. llvm-svn: 165893
* Remove the bitwise NOT operator from the Attributes class. Replace it with ↵Bill Wendling2012-10-147-22/+35
| | | | | | the equivalent from the builder class. llvm-svn: 165892
* Decode the LLVM attributes from bitcode using the attributes builder.Bill Wendling2012-10-142-7/+14
| | | | llvm-svn: 165891
* Use builder to create alignment attributes. Remove dead function.Bill Wendling2012-10-144-26/+22
| | | | llvm-svn: 165890
* Remove dead method.Bill Wendling2012-10-141-12/+3
| | | | llvm-svn: 165889
* Use the Builder to create the stack alignment attribute.Bill Wendling2012-10-141-2/+3
| | | | llvm-svn: 165888
* Don't pass in an Attributes object to something that expects an integral value.Bill Wendling2012-10-141-3/+1
| | | | llvm-svn: 165887
* "Implement" codegen support for __noop().Nico Weber2012-10-132-0/+16
| | | | | | | Eli discovered that __noop's sema behavior also needs some love. I filed PR14081 for that and intend to improve it. llvm-svn: 165886
* Simplify. Suggestion by Sean Silva.Nico Weber2012-10-131-11/+3
| | | | llvm-svn: 165885
* Use traits_type::to_int_type in basic_streambuf<_CharT, _Traits>::xsputn ↵Howard Hinnant2012-10-131-1/+1
| | | | | | when calling overflow to correctly handle negative signed character types. This fixes http://llvm.org/bugs/show_bug.cgi?id=14074. llvm-svn: 165884
* Make the type_info for __shim_type_info visible. This should address some ↵Howard Hinnant2012-10-131-5/+5
| | | | | | failing dynamic_casts that a few applications are doing on the type_info hierarchy. llvm-svn: 165883
* Dimitry Andric: FreeBSD only: Add the C11 aligned_alloc to <cstdlib> and ↵Howard Hinnant2012-10-132-1/+8
| | | | | | adjust the inclusion of quick_exit. llvm-svn: 165882
* Remove unused private field.Benjamin Kramer2012-10-131-1/+0
| | | | llvm-svn: 165881
* X86: Depending on the local semantics of .align this test can also emit a ↵Benjamin Kramer2012-10-131-1/+1
| | | | | | nopl instead of nopw. llvm-svn: 165880
* Documentation: Lexicon.rst: add "BB Vectorization" and "TBAA".Dmitri Gribenko2012-10-131-2/+11
| | | | llvm-svn: 165879
* X86: Disable long nops for all cpus prior to pentiumpro/i686.Benjamin Kramer2012-10-132-3/+11
| | | | llvm-svn: 165878
* Drop <def,dead> flags when merging into an unused lane.Jakob Stoklund Olesen2012-10-132-5/+36
| | | | | | | | | | | | The new coalescer can merge a dead def into an unused lane of an otherwise live vector register. Clear the <dead> flag when that happens since the flag refers to the full virtual register which is still live after the partial dead def. This fixes PR14079. llvm-svn: 165877
* Mention that the code signing process also applies to Mountain LionEnrico Granata2012-10-131-1/+1
| | | | llvm-svn: 165876
* instcombine: Migrate strchr and strrchr optimizationsMeador Inge2012-10-138-140/+236
| | | | | | | This patch migrates the strchr and strrchr optimizations from the simplify-libcalls pass into the instcombine library call simplifier. llvm-svn: 165875
* instcombine: Migrate strcat and strncat optimizationsMeador Inge2012-10-1310-165/+311
| | | | | | | This patch migrates the strcat and strncat optimizations from the simplify-libcalls pass into the instcombine library call simplifier. llvm-svn: 165874
* Implement new LibCallSimplifier classMeador Inge2012-10-136-36/+342
| | | | | | | | | | | | | | | | This patch implements the new LibCallSimplifier class as outlined in [1]. In addition to providing the new base library simplification infrastructure, all the fortified library call simplifications were moved over to the new infrastructure. The rest of the library simplification optimizations will be moved over with follow up patches. NOTE: The original fortified library call simplifier located in the SimplifyFortifiedLibCalls class was not removed because it is still used by CodeGenPrepare. This class will eventually go away too. [1] http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-August/052283.html llvm-svn: 165873
* Allow for loops in LiveIntervals::pruneValue().Jakob Stoklund Olesen2012-10-132-29/+81
| | | | | | | | | | | | | | It is possible that the live range of the value being pruned loops back into the kill MBB where the search started. When that happens, make sure that the beginning of KillMBB is also pruned. Instead of starting a DFS at KillMBB and skipping the root of the search, start a DFS at each KillMBB successor, and allow the search to loop back to KillMBB. This fixes PR14078. llvm-svn: 165872
* X86: Fix accidentally swapped operands.Benjamin Kramer2012-10-132-5/+5
| | | | llvm-svn: 165871
* Teach SROA to cope with wrapper aggregates. These show up a lot in ABIChandler Carruth2012-10-133-34/+77
| | | | | | | | | | | | | | | | | | | | | | | type coercion code, especially when targetting ARM. Things like [1 x i32] instead of i32 are very common there. The goal of this logic is to ensure that when we are picking an alloca type, we look through such wrapper aggregates and across any zero-length aggregate elements to find the simplest type possible to form a type partition. This logic should (generally speaking) rarely fire. It only ends up kicking in when an alloca is accessed using two different types (for instance, i32 and float), and the underlying alloca type has wrapper aggregates around it. I noticed a significant amount of this occurring looking at stepanov_abstraction generated code for arm, and suspect it happens elsewhere as well. Note that this doesn't yet address truly heinous IR productions such as PR14059 is concerning. Those result in mismatched *sizes* of types in addition to mismatched access and alloca types. llvm-svn: 165870
* Speculatively harden the conversion logic. I have no idea if this willChandler Carruth2012-10-131-0/+11
| | | | | | | | | help the dragonegg builders, and no test case at this point, but this was one dimly plausible case I spotted by inspection. Hopefully will get a testcase from those bots soon-ish, and will tidy this up with proper testing. llvm-svn: 165869
* X86: Promote i8 cmov when both operands are coming from truncates of the ↵Benjamin Kramer2012-10-132-0/+28
| | | | | | | | | | | | | | same width. X86 doesn't have i8 cmovs so isel would emit a branch. Emitting branches at this level is often not a good idea because it's too late for many optimizations to kick in. This solution doesn't add any extensions (truncs are free) and tries to avoid introducing partial register stalls by filtering direct copyfromregs. I'm seeing a ~10% speedup on reading a random .png file with libpng15 via graphicsmagick on x86_64/westmere, but YMMV depending on the microarchitecture. llvm-svn: 165868
* Silence a warning in -assert builds.Chandler Carruth2012-10-131-0/+1
| | | | llvm-svn: 165867
* [analyzer] Remove the "direct bindings only" Environment lookup.Jordan Rose2012-10-133-20/+6
| | | | | | | | | | | | This was only used by OSAtomicChecker and makes it more difficult to update values for expressions that the environment may look through instead (it's not the same as IgnoreParens). With this gone, we can have bindExpr bind to the inner expression that getSVal will find. Groundwork for <rdar://problem/12137950> llvm-svn: 165866
* [analyzer] Remove unneeded 'inlineCall' checker callback.Jordan Rose2012-10-133-62/+3
| | | | | | | | | | | | | I believe the removed assert in CheckerManager says it best: InlineCall is a special hacky callback to allow intrusive evaluation of the call (which simulates inlining). It is currently only used by OSAtomicChecker and should go away at some point. OSAtomicChecker has gone away; inlineCall can now go away as well! llvm-svn: 165865
* Clean up how we rewrite loads and stores to the whole alloca. When theseChandler Carruth2012-10-131-5/+49
| | | | | | | | | | | | are single value types, the load and store should be directly based upon the alloca and then bitcasting can fix the type as needed afterward. This might in theory improve some of the IR coming out of SROA, but I don't expect big changes yet and don't have any test cases on hand. This is really just a cleanup/refactoring patch. The next patch will cause this code path to be hit a lot more, actually get SROA to promote more allocas and include several more test cases. llvm-svn: 165864
* Fix the bootstrap of CompilerRT with host compilers that don't supportChandler Carruth2012-10-133-4/+8
| | | | | | | | | emulating 128-bit arithmetic on 32-bit x86 targets. This should get the bootstrap back for GCC 4.6 at least. Suggestions on better ways to do the detection here are welcome... llvm-svn: 165863
* Make sure we always use lldb::tid_t for thread IDs so we don't truncate a 64 ↵Greg Clayton2012-10-132-3/+3
| | | | | | bit thread ID. llvm-svn: 165862
OpenPOWER on IntegriCloud