summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [ASan] Fix compilation.Alexander Potapenko2014-01-281-2/+0
| | | | llvm-svn: 200312
* [CMake] llvm_update_compile_flags(name) doesn't require source files. TARGET ↵NAKAMURA Takumi2014-01-281-6/+6
| | | | | | PROPERTY SOURCES has them. llvm-svn: 200311
* [ASan] Move the sigaltstack() bits to sanitizer_common.Alexander Potapenko2014-01-287-37/+41
| | | | | | | This change is a part of refactoring intended to have common signal handling behavior in all tools. Note that this particular change doesn't enable use_sigaltstack support in every tool. llvm-svn: 200310
* Provide a stub Target Streamer implementation for PPC MachOIain Sandoe2014-01-281-2/+17
| | | | | | At present, this handles .tc (error) and needs to be expanded to deal properly with .machine llvm-svn: 200309
* tsan: remove interceptor statsDmitry Vyukov2014-01-283-703/+0
| | | | | | They seems to be unused, but cause maintenance pain. llvm-svn: 200308
* [ARM] Fix AAPCS-VFP non-compliance when returning HFA from variadic functions.Amara Emerson2014-01-283-8/+23
| | | | | | | | | Arguments and return values must always be marshalled as for the base AAPCS when the callee is a variadic function. Patch by Oliver Stannard! llvm-svn: 200307
* [CMake] Apply llvm_update_compile_flags() in add_lld_library().NAKAMURA Takumi2014-01-281-0/+1
| | | | | | Sorry for the breakage. llvm-svn: 200306
* Add more test cases to check loop invariance of the base pointer.Tobias Grosser2014-01-282-45/+236
| | | | llvm-svn: 200305
* tsan: relax checking of errno spoiling in signal handlersDmitry Vyukov2014-01-283-25/+38
| | | | | | | allow SIGABRT to spoil errno, because some real programs reset SIGABRT handler in the handler, re-raise SIGABRT and return from the handler llvm-svn: 200304
* [CMake] Prune CMAKE_CXX_FLAGS stuff in llvm_process_sources.NAKAMURA Takumi2014-01-281-18/+0
| | | | | | It is the final step to deprecate contextual CMAKE_CXX_FLAGS. llvm-svn: 200303
* [CMake] Apply llvm_update_compile_flags() to add_clang_library().NAKAMURA Takumi2014-01-281-0/+1
| | | | llvm-svn: 200302
* [CMake] Enhance llvm_update_compile_flags(name sources) to handle ↵NAKAMURA Takumi2014-01-282-8/+43
| | | | | | | | | | | | | | | | LLVM_REQUIRES_EH and LLVM_REQUIRES_RTTI. LLVM_REQUIRES_EH implies LLVM_REQUIRES_RTTI. It is as same behavior as Makefile.rule's. llvm/examples/ExceptionDemo is affected. (It was built with -fno-rtti.) For MSVC, Remove flags like "/EHsc /GR" in HandleLLVMOptions, or CL.EXE complains with flags like "/GR /GR-". llvm_update_compile_flags() updates source file property if the target contains *.c. COMPILE_FLAGS in target properties affects both C++ and C! LLVM_NO_RTTI is deprecated. It was introduced by me and was my mistake. llvm-svn: 200301
* [CMake] Apply -ffunction-data-sectinos not only to CMAKE_CXX_FLAGS, but also ↵NAKAMURA Takumi2014-01-281-1/+1
| | | | | | to CMAKE_C_FLAGS. llvm-svn: 200300
* [CMake] Move -ffunction-data-sections stuff to HandleLLVMOptions.NAKAMURA Takumi2014-01-282-10/+11
| | | | | | | | With this tweaks, also unittests are compiled with -ffunction-sections. It's hard to control contextual CMAKE_CXX_FLAGS. We should get rid of twiddling it as possible. llvm-svn: 200299
* [CMake] Let llvm_process_sources check not only *.cpp but also *.c.NAKAMURA Takumi2014-01-281-2/+2
| | | | llvm-svn: 200298
* [CMake] Put lli-child-target into the Folder "Misc".NAKAMURA Takumi2014-01-281-0/+2
| | | | llvm-svn: 200297
* [CMake] clangStaticAnalyzerFrontend: Deprecate LLVM_NO_RTTI.NAKAMURA Takumi2014-01-281-2/+0
| | | | llvm-svn: 200296
* [ASan] Move the signal handling-related flags to sanitizer_common.Alexander Potapenko2014-01-2813-45/+59
| | | | | | This change is a part of refactoring intended to have common signal handling behavior in all tools. llvm-svn: 200295
* [vectorizer] Completely disable the block frequency guidance of the loopChandler Carruth2014-01-282-4/+14
| | | | | | | | | | | | | | | vectorizer, placing it behind an off-by-default flag. It turns out that block frequency isn't what we want at all, here or elsewhere. This has been I think a nagging feeling for several of us working with it, but Arnold has given some really nice simple examples where the results are so comprehensively wrong that they aren't useful. I'm planning to email the dev list with a summary of why its not really useful and a couple of ideas about how to better structure these types of heuristics. llvm-svn: 200294
* [msan] Replace assert() with GTest ASSERT_* in msan_test.Evgeniy Stepanov2014-01-281-106/+105
| | | | llvm-svn: 200293
* Clarify. Thanks to Sean Silva and Warren Hunt for help wordsmithing!Nick Lewycky2014-01-281-6/+6
| | | | llvm-svn: 200292
* Fix this test and don't run it in ASan bootstrapAlexey Samsonov2014-01-282-2/+4
| | | | llvm-svn: 200291
* Turn on PIC by default on Android (http://llvm-reviews.chandlerc.com/D2603)Alexey Bataev2014-01-283-1/+32
| | | | llvm-svn: 200290
* Fix always-false conditional thinko in documentation.Nick Lewycky2014-01-281-1/+1
| | | | llvm-svn: 200289
* Handle spilling the PPC GPRC_NOR0 register classHal Finkel2014-01-282-4/+31
| | | | | | | GPRC_NOR0 is not a subclass of GPRC (because it also contains the ZERO pseudo register). As a result, we also need to check for it in the spilling code. llvm-svn: 200288
* Improve handling of EnforceSmallerThan. Remove all types that are smaller ↵Craig Topper2014-01-282-137/+91
| | | | | | from the larger set not just the smallest type from the smaller set. Ensure 'smaller' vectors have the same or fewer total bits. Similar for 'larger' vectors. llvm-svn: 200287
* MC: Add a .debug section that we'll soon use to emit debug info into COFF filesTimur Iskhodzhanov2014-01-282-0/+13
| | | | llvm-svn: 200285
* R600/SI: Add pattern for truncating i32 to i1Michel Danzer2014-01-282-0/+15
| | | | | | | Fixes half a dozen piglit tests with radeonsi. Reviewed-by: Tom Stellard <thomas.stellard@amd.com> llvm-svn: 200283
* Fix the DWARF EH encodings for Sparc PIC code.Jakob Stoklund Olesen2014-01-283-17/+108
| | | | | | | Also emit the stubs that were generated for references to typeinfo symbols. llvm-svn: 200282
* Update optimization passes to handle inalloca argumentsReid Kleckner2014-01-2814-20/+124
| | | | | | | | | | | | | | | Summary: I searched Transforms/ and Analysis/ for 'ByVal' and updated those call sites to check for inalloca if appropriate. I added tests for any change that would allow an optimization to fire on inalloca. Reviewers: nlewycky Differential Revision: http://llvm-reviews.chandlerc.com/D2449 llvm-svn: 200281
* Test case for clobbers on cpuid in ms inline asmReid Kleckner2014-01-281-0/+6
| | | | | | Tests r200279 in LLVM. llvm-svn: 200280
* x86: add implicit defs for cpuidReid Kleckner2014-01-281-2/+7
| | | | | | | This avoids miscompiling MS inline asm in LLVM where we have to infer clobbers. Test case forthcoming in Clang. llvm-svn: 200279
* [PECOFF] Replace magic numbers with sizeof.Rui Ueyama2014-01-281-3/+4
| | | | llvm-svn: 200278
* Relaxing the alignment requirements for fields in a transparent_union. Emits ↵Aaron Ballman2014-01-282-2/+25
| | | | | | | | the diagnostic only when subsequent alignments are more strict than the alignment required by the first field. Fixes PR15134 llvm-svn: 200277
* [PECOFF] Convert more binary files to YAML.Rui Ueyama2014-01-287-14/+136
| | | | | | | Because the object files are now readable to humans, I don't think we need the source assembly file any more, so I removed them too in this commit. llvm-svn: 200276
* [PECOFF] Remove a redundant test.Rui Ueyama2014-01-282-92/+85
| | | | | | | peplus.test and pe32plus.test basically covered the same thing, so remove pe32plus.test and then rename peplus.test -> pe32plus.test. llvm-svn: 200275
* [PECOFF] Convert a object file to YAML to remove a binary file from SVN.Rui Ueyama2014-01-283-1/+64
| | | | llvm-svn: 200274
* [LPM] Fix PR18616 where the shifts to the loop pass manager to extractChandler Carruth2014-01-283-16/+30
| | | | | | | | | | | | | | | | | | | | | | | | | LCSSA from it caused a crasher with the LoopUnroll pass. This crasher is really nasty. We destroy LCSSA form in a suprising way. When unrolling a loop into an outer loop, we not only need to restore LCSSA form for the outer loop, but for all children of the outer loop. This is somewhat obvious in retrospect, but hey! While this seems pretty heavy-handed, it's not that bad. Fundamentally, we only do this when we unroll a loop, which is already a heavyweight operation. We're unrolling all of these hypothetical inner loops as well, so their size and complexity is already on the critical path. This is just adding another pass over them to re-canonicalize. I have a test case from PR18616 that is great for reproducing this, but pretty useless to check in as it relies on many 10s of nested empty loops that get unrolled and deleted in just the right order. =/ What's worse is that investigating this has exposed another source of failure that is likely to be even harder to test. I'll try to come up with test cases for these fixes, but I want to get the fixes into the tree first as they're causing crashes in the wild. llvm-svn: 200273
* s/0/nullptr/Rui Ueyama2014-01-281-4/+6
| | | | llvm-svn: 200272
* [TLI] Add a new hook to TargetLowering to query the target if a load of a ↵Juergen Ributzka2014-01-2810-19/+50
| | | | | | | | | | | | | | | | | constant should be converted to simply the constant itself. Before this patch we used getIntImmCost from TargetTransformInfo to determine if a load of a constant should be converted to just a constant, but the threshold for this was set to an arbitrary value. This value works well for the two targets (X86 and ARM) that implement this target-hook, but it isn't target-independent at all. Now targets have the possibility to decide directly if this optimization should be performed. The default value is set to false to preserve the current behavior. The target hook has been moved to TargetLowering, which removed the last use and need of TargetTransformInfo in SelectionDAG. llvm-svn: 200271
* LoopVectorize: Support conditional stores by scalarizingArnold Schwaighofer2014-01-282-29/+280
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The vectorizer takes a loop like this and widens all instructions except for the store. The stores are scalarized/unrolled and hidden behind an "if" block. for (i = 0; i < 128; ++i) { if (a[i] < 10) a[i] += val; } for (i = 0; i < 128; i+=2) { v = a[i:i+1]; v0 = (extract v, 0) + 10; v1 = (extract v, 1) + 10; if (v0 < 10) a[i] = v0; if (v1 < 10) a[i] = v1; } The vectorizer relies on subsequent optimizations to sink instructions into the conditional block where they are anticipated. The flag "vectorize-num-stores-pred" controls whether and how many stores to handle this way. Vectorization of conditional stores is disabled per default for now. This patch also adds a change to the heuristic when the flag "enable-loadstore-runtime-unroll" is enabled (off by default). It unrolls small loops until load/store ports are saturated. This heuristic uses TTI's getMaxUnrollFactor as a measure for load/store ports. I also added a second flag -enable-cond-stores-vec. It will enable vectorization of conditional stores. But there is no cost model for vectorization of conditional stores in place yet so this will not do good at the moment. rdar://15892953 Results for x86-64 -O3 -mavx +/- -mllvm -enable-loadstore-runtime-unroll -vectorize-num-stores-pred=1 (before the BFI change): Performance Regressions: Benchmarks/Ptrdist/yacr2/yacr2 7.35% (maze3() is identical but 10% slower) Applications/siod/siod 2.18% Performance improvements: mesa -4.42% libquantum -4.15% With a patch that slightly changes the register heuristics (by subtracting the induction variable on both sides of the register pressure equation, as the induction variable is probably not really unrolled): Performance Regressions: Benchmarks/Ptrdist/yacr2/yacr2 7.73% Applications/siod/siod 1.97% Performance Improvements: libquantum -13.05% (we now also unroll quantum_toffoli) mesa -4.27% llvm-svn: 200270
* Revert r199871 and replace it with a simple check in the debug infoEric Christopher2014-01-2816-39/+45
| | | | | | | | | code to see if we're emitting a function into a non-default text section. This is still a less-than-ideal solution, but more contained than r199871 to determine whether or not we're emitting code into an array of comdat sections. llvm-svn: 200269
* Apply the typo correction replacement location fix from r191450 to theKaelyn Uhrain2014-01-282-3/+20
| | | | | | | | case when correcting for too many arguments (r191450 had only fixed the problem for when there were too few arguments). Also fix the underlining for both cases. llvm-svn: 200268
* Fixed a crasher when handling process events that is due to a translation ↵Greg Clayton2014-01-281-1/+2
| | | | | | from the public API to the private API. llvm-svn: 200267
* Modified GDBProcessCommunicationServer to launch via the platform.Todd Fiala2014-01-283-6/+108
| | | | | | | | | | | | | | | | | | | GDBProcessCommunicationServer now optionally takes a PlatformSP that defaults to the default platform for the host. GDBProcessCommunicationServer::LaunchProcess () now uses the platform to launch the process. lldb-gdbserver now takes an optional --platform={platform_plugin_name} or -p {platform_plugin_name} command line option. If no platform is specified, the default platform for the host is used; otherwise, if the platform_plugin_name matches a registered platform plugin or matches the default platform's name (which is not necessarily registered by name in the case of 'host'), that platform is used. If the platform name cannot be resolved, lldb-gdbserver exits after printing all the available platform plugin names and the default platform plugin name. llvm-svn: 200266
* Remove dead code; MacroDirective's IsHidden flag is always false.Richard Smith2014-01-273-38/+18
| | | | llvm-svn: 200265
* Reformat slightly.Eric Christopher2014-01-271-5/+1
| | | | llvm-svn: 200264
* Merging the iohandler branch back into main. Greg Clayton2014-01-27115-6454/+10443
| | | | | | | | | | | | The many many benefits include: 1 - Input/Output/Error streams are now handled as real streams not a push style input 2 - auto completion in python embedded interpreter 3 - multi-line input for "script" and "expression" commands now allow you to edit previous/next lines using up and down arrow keys and this makes multi-line input actually a viable thing to use 4 - it is now possible to use curses to drive LLDB (please try the "gui" command) We will need to deal with and fix any buildbot failures and tests and arise now that input/output and error are correctly hooked up in all cases. llvm-svn: 200263
* PGO branch weight: keep halving the weights until they can fit intoManman Ren2014-01-272-13/+44
| | | | | | | | | | uint32. When folding branches to common destination, the updated branch weights can exceed uint32 by more than factor of 2. We should keep halving the weights until they can fit into uint32. llvm-svn: 200262
* Reverting because reverting r200145.Adrian Prantl2014-01-273-0/+8
| | | | | | | | Revert "check-clang doesn't require neither llvm_src_root nor llvm_obj_root." This reverts commit r200146. llvm-svn: 200261
OpenPOWER on IntegriCloud