summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [x86] Make the single-input v8i16 lowering directly recurse rather thanChandler Carruth2015-02-271-2/+2
| | | | | | | | going back through the entire vector shuffle lowering. This is an important step to being able to re-use this logic. llvm-svn: 230743
* [mips] Account for constant-zero operands in ADDE nodes.Vasileios Kalintiris2015-02-272-2/+41
| | | | | | | | | | | | | | | Summary: We identify the cases where the operand to an ADDE node is a constant zero. In such cases, we can avoid generating an extra ADDu instruction disguised as an identity move alias (ie. addu $r, $r, 0 --> move $r, $r). Reviewers: dsanders Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D7906 llvm-svn: 230742
* clang-format: Make trailing commas in array inits force one per line.Daniel Jasper2015-02-272-2/+9
| | | | | | | | | | | | | Before: NSArray *array = @[ @"a", @"a", ]; After: NSArray *array = @[ @"a", @"a", ]; llvm-svn: 230741
* Revert r230717 (and subsequent r230720).Daniel Jasper2015-02-271-133/+2
| | | | | | | The tests keeps failing on build bots: http://lab.llvm.org:8080/green/job/clang-stage2-configure-Rlto_check/2355/testReport/junit/Clang/CodeGen/exceptions_seh_leave_c/ llvm-svn: 230740
* Fixes http://reviews.llvm.org/rL230691Chaoren Lin2015-02-271-7/+4
| | | | | | | | | | | | Summary: OS X doesn't implement pthread barriers, using a simple atomic flag instead. Reviewers: ki.stfu Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D7933 llvm-svn: 230739
* [X86] Remove pblendw and pblendd builtins that aren't being used by the ↵Craig Topper2015-02-272-5/+0
| | | | | | intrinsic headers. llvm-svn: 230738
* [ELF] Set up initial live symbol(s) to avoid incorrect reclaim of atoms.Davide Italiano2015-02-271-0/+4
| | | | | | | | | | | | | If no initial live symbols are set up, and deadStrip() == true, the Resolver ends up reclaiming all the symbols that aren't absolute. This is wrong. This patch fixes the issue by setting entrySymbolName() as live, and this allows us to self-host lld when --gc-sections is enabled. There are still quite a few problems with --gc-sections (test failures), so the option can't be enabled by default. Differential Revision: D7926 Reviewed by: ruiu, shankarke llvm-svn: 230737
* [OPENMP] Codegen for "#pragma omp atomic write"Alexey Bataev2015-02-276-198/+942
| | | | | | | | | | For global reg lvalue - use regular store through global register. For simple lvalue - use simple atomic store. For bitfields, vector element, extended vector elements - the original value of the whole storage (for vector elements) or of some aligned value (for bitfields) is atomically read, the part of this value for the given lvalue is modified and then use atomic compare-and-exchange operation to try to atomically write modified value (if it was not modified). Also, changes in this patch fix the bug for '#pragma omp atomic read' applied to extended vector elements. Differential Revision: http://reviews.llvm.org/D7369 llvm-svn: 230736
* Temporarily disable FileArchive::preload().Rui Ueyama2015-02-271-16/+2
| | | | | | | | It is observed that the function throws std::future_error on a few buildbots. That cannot be easily reproducible on local machines. Kill the feature temporarily to see if this is going to fix the buildbot issue. llvm-svn: 230735
* Partially revert "PECOFF: Do not add layout-after edges."Rui Ueyama2015-02-272-7/+12
| | | | | | | | | This reverts commit r230732. sectionSize() in lib/Core/SymbolTable.cpp still depends on the layout- after edges, so we couldn't remove them yet. llvm-svn: 230734
* [ELF] Remove includes that are not usedShankar Easwaran2015-02-271-21/+0
| | | | | | This remove(s) include of the filename twice. llvm-svn: 230733
* PECOFF: Do not add layout-after edges.Rui Ueyama2015-02-272-18/+7
| | | | | | | | Previously we needed to create atoms as a doubly-linked link, but it's no longer needed. Also we don't use layout-after edges in PE/COFF. Creating such edges is just waste. llvm-svn: 230732
* [CMake] CleanupShankar Easwaran2015-02-271-19/+0
| | | | llvm-svn: 230731
* Twine should be used within a statement.Rui Ueyama2015-02-271-3/+3
| | | | llvm-svn: 230730
* Update comments, fix typos.Rui Ueyama2015-02-273-5/+8
| | | | llvm-svn: 230729
* Use read{le,be}{16,32}. NFC.Rui Ueyama2015-02-271-24/+10
| | | | llvm-svn: 230728
* [modules] Don't write out name lookup table entries merely because the moduleRichard Smith2015-02-273-10/+27
| | | | | | happened to query them; only write them out if something new was added. llvm-svn: 230727
* Remove unused #includes.Rui Ueyama2015-02-275-5/+0
| | | | llvm-svn: 230726
* Add {read,write}{16,32,64}{le,be} functions.Rui Ueyama2015-02-279-131/+129
| | | | | | | | | | | | | | Nothing wrong with reinterpret_cast<llvm::support::ulittle32_t *>(loc), but that's redundant and not great from readability point of view. The new functions are wrappers for that kind of reinterpet_casts. Surprisingly or unsurprisingly, there was no use of big endian read and write. {read,write}{16,32,64}be have no user. But I think they still worth to be there in the header for completeness. http://reviews.llvm.org/D7927 llvm-svn: 230725
* [asan] Skip promotable allocas to improve performance at -O0Anna Zaks2015-02-278-36/+105
| | | | | | | | | | | | Currently, the ASan executables built with -O0 are unnecessarily slow. The main reason is that ASan instrumentation pass inserts redundant checks around promotable allocas. These allocas do not get instrumented under -O1 because they get converted to virtual registered by mem2reg. With this patch, ASan instrumentation pass will only instrument non promotable allocas, giving us a speedup of 39% on a collection of benchmarks with -O0. (There is no measurable speedup at -O1.) llvm-svn: 230724
* [compiler-rt] Allow suppression file to be relative to the location of the ↵Anna Zaks2015-02-277-4/+124
| | | | | | | | | | executable The ASanified executable could be launched from different locations. When we cannot find the suppression file relative to the current directory, try to see if the specified path is relative to the location of the executable. llvm-svn: 230723
* MS ABI: Simplify the code which performs base adjustmentsDavid Majnemer2015-02-271-19/+17
| | | | llvm-svn: 230722
* [Sanitizer] Print column number in SUMMARY line if it's available.Alexey Samsonov2015-02-276-30/+32
| | | | llvm-svn: 230721
* Add last missing __leave test.Nico Weber2015-02-271-1/+69
| | | | llvm-svn: 230720
* Don't modify the DenseMap being iterated over from within the loopSanjoy Das2015-02-271-3/+6
| | | | | | | | | | | that is iterating over it Inserting elements into a `DenseMap` invalidated iterators pointing into the `DenseMap` instance. Differential Revision: http://reviews.llvm.org/D7924 llvm-svn: 230719
* Fix a use-iterator-after-invalidate errorSanjoy Das2015-02-271-0/+6
| | | | | | | | AnalysisResult::getResultImpl reuses an iterator into a DenseMap after inserting elements into it. This change adds code to recompute the iterator before the second use. llvm-svn: 230718
* Add another __leave test.Nico Weber2015-02-271-2/+65
| | | | llvm-svn: 230717
* [modules] For an inheriting constructor, the inherited constructor is stored inRichard Smith2015-02-274-1/+10
| | | | | | | a map keyed off the canonical declaration. Don't try to set it if we're loading some non-canonical merged declaration. llvm-svn: 230716
* Target/X86: Save Win64 non-volatile registers in a Win64 ABI function.Charles Davis2015-02-272-1/+39
| | | | | | | | | | | | | | Summary: This change causes us to actually save non-volatile registers in a Win64 ABI function that calls a System V ABI function, and vice-versa. Reviewers: rnk Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D7919 llvm-svn: 230714
* llvm-vtabledump: Dump catch/throw exception structures for MS ABIDavid Majnemer2015-02-273-2/+365
| | | | llvm-svn: 230713
* [modules] When loading in multiple canonical definitions of a template,Richard Smith2015-02-275-61/+64
| | | | | | | accumulate the set of specializations rather than overwriting one list with another. llvm-svn: 230712
* Fixed an infinite recursion bug that could happen when using python ↵Greg Clayton2015-02-271-1/+1
| | | | | | | | operating system plug-ins where we would ask the operating system plug-in to update its threads and this would cause the plugin to run an expression which would eventually run IRForTarget::CreateResultVariable() which would try to get the selected thread and cause re-entrant bug. <rdar://problem/19924734> llvm-svn: 230711
* Rewrite MachineOperand::print and MachineInstr::print to avoidEric Christopher2015-02-279-50/+36
| | | | | | | | | | | | uses of TM->getSubtargetImpl and propagate to all calls. This could be a debugging regression in places where we had a TargetMachine and/or MachineFunction but don't have it as part of the MachineInstr. Fixing this would require passing a MachineFunction/Function down through the print operator, but none of the existing uses in tree seem to do this. llvm-svn: 230710
* [CMake] Effectively revert r230683.Alexey Samsonov2015-02-271-3/+4
| | | | | | | Clang in 32-bit mode may choose to target different architecture than host compiler. llvm-svn: 230709
* Remove duplicated code for synthetic array members.Bruce Mitchener2015-02-265-68/+9
| | | | | | | | | | | | | | | | | Summary: The code for GetSyntheticArrayMemberFromPointer and GetSyntheticArrayMemberFromArray was identical, so just collapse the the methods into one. Reviewers: granata.enrico, clayborg Reviewed By: clayborg Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D7911 llvm-svn: 230708
* Put jump tables in distinct sections if -ffunction-sections is used.Rafael Espindola2015-02-262-20/+34
| | | | | | | A small regression in r230411 was that we were basing the decision on -fdata-sections. llvm-svn: 230707
* [swig] Fix some typos in the build scripts.Bruce Mitchener2015-02-262-3/+3
| | | | | | | | | | | | Reviewers: zturner, ki.stfu Reviewed By: zturner, ki.stfu Subscribers: ki.stfu, lldb-commits Differential Revision: http://reviews.llvm.org/D7912 llvm-svn: 230706
* [Orc][Kaleidoscope] More tutorial cleanup, a little extra debugging output.Lang Hames2015-02-262-23/+19
| | | | llvm-svn: 230705
* [llvm-pdbdump] Add missing files.Zachary Turner2015-02-262-0/+105
| | | | llvm-svn: 230704
* [llvm-pdbdump] Fix dumping of function pointers and basic types.Zachary Turner2015-02-2612-65/+93
| | | | | | | | | | | | Function pointers were not correctly handled by the dumper, and they would print as "* name". They now print as "int (__cdecl *name)(int arg1, int arg2)" as they should. Also, doubles were being printed as floats. This fixes that bug as well, and adds tests for all builtin types. as well as a test for function pointers. llvm-svn: 230703
* PECOFF: allow more than one /alternatename for the same symbol.Rui Ueyama2015-02-265-27/+22
| | | | | | | | | | | Previously we have a string -> string map to keep the weak alias symbol mapping. Naturally we can't define more than one weak alias with that data structure. This patch is to allow multiple aliases for the same symbol by changing the map type to string -> set of string map. llvm-svn: 230702
* Remove commented out function.Eric Christopher2015-02-261-1/+0
| | | | | | (Saving files works, who knew?) llvm-svn: 230701
* Remove DebugLoc::print(LLVMContext, raw_ostream), it was justEric Christopher2015-02-263-10/+4
| | | | | | forwarding to the one that didn't take a context. llvm-svn: 230700
* getRegForInlineAsmConstraint wants to use TargetRegisterInfo forEric Christopher2015-02-2627-108/+137
| | | | | | | | | a lookup, pass that in rather than use a naked call to getSubtargetImpl. This involved passing down and around either a TargetMachine or TargetRegisterInfo. Update all callers/definitions around the targets and SelectionDAG. llvm-svn: 230699
* Add a TargetMachine argument to the AddressingModeMatcher, we'llEric Christopher2015-02-261-10/+14
| | | | | | | need this shortly to get a TargetRegisterInfo from the subtarget for TargetLowering routines. llvm-svn: 230698
* Don't crash on leaving nested __finally blocks through an EH edge.Nico Weber2015-02-263-26/+110
| | | | | | | | | | | | | | | The __finally emission block tries to be clever by removing unused continuation edges if there's an unconditional jump out of the __finally block. With exception edges, the EH continuation edge isn't always unused though and we'd crash in a few places. Just don't be clever. That makes the IR for __finally blocks a bit longer in some cases (hence small and behavior-preserving changes to existing tests), but it makes no difference in general and it fixes the last crash from PR22553. http://reviews.llvm.org/D7918 llvm-svn: 230697
* [x86] Fix PR22706 where we would incorrectly try lower a v32i8 dynamicChandler Carruth2015-02-262-13/+41
| | | | | | | | | | | | | blend as legal. We made the same mistake in two different places. Whenever we are custom lowering a v32i8 blend we need to check whether we are custom lowering it only for constant conditions that can be shuffled, or whether we actually have AVX2 and full dynamic blending support on bytes. Both are fixed, with comments added to make it clear what is going on and a new test case. llvm-svn: 230695
* Fix Bug 20400Chaoren Lin2015-02-261-1/+1
| | | | | | | | | | | | | | | | | | | Summary: http://llvm.org/bugs/show_bug.cgi?id=20400 The default triple of i686-pc-linux-gnu for 32 bit linux targets is compatible but not necessarily identical to the inferior binaries. Applying Azat Khuzhin's solution of using ArchSpec::IsCompatibleMatch() instead of ArchSpec::IsExactMatch() when comparing ObjectFile and Modules architecture. Reviewers: vharron Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D7897 llvm-svn: 230694
* Simplify arange output.Rafael Espindola2015-02-262-68/+43
| | | | | | | Move SectionMap to its only user (emitDebugARanges) and reorder to save a call to sort. llvm-svn: 230693
* Re-instate the pragma optimize hack for MSVC, but not clang-clReid Kleckner2015-02-261-0/+8
| | | | | | Reverts commit r230686 with define modifications. llvm-svn: 230692
OpenPOWER on IntegriCloud