summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
...
* With PPC CR bit registers, handle int_to_fp on older coresHal Finkel2014-03-052-6/+37
| | | | | | | | | On cores without fpcvt support, we cannot promote int_to_fp i1 operations, because there is nothing to promote them to. The most straightforward implementation of this uses a select to choose between the two possible resulting floating-point values (and that's what is done here). llvm-svn: 203015
* Fix typoMatt Arsenault2014-03-051-3/+3
| | | | llvm-svn: 203013
* Fix datalayout test that I broke with my previous LinkModules warning ↵JF Bastien2014-03-051-1/+1
| | | | | | improvement. llvm-svn: 203011
* Improve LinkModules warningsJF Bastien2014-03-051-5/+9
| | | | | | | | Provide triple and data layout as well as module names (or empty string) when there's a mismatch. Differential Revision: http://llvm-reviews.chandlerc.com/D2971 llvm-svn: 203009
* LoopVectorizer: Preserve fast-math flagsArnold Schwaighofer2014-03-053-6/+48
| | | | | | Fixes PR19045. llvm-svn: 203008
* Always print the implicit .text at the start of an asm file.Rafael Espindola2014-03-059-17/+18
| | | | | | | | | | | | | | | | | Before llvm-mc would print it, but llc was assuming that it would produce another section changing directive before one was needed. That assumption is false with inline asm. Fixes PR19049. Another option would be to always create the section, but in the asm printer avoid printing sections changes during initialization. That would work, but * We do use the fact that llvm-mc prints it in testing. The tests can be changed if needed. * A quick poll on IRC suggest that most developers prefer the implicit .text to be printed. llvm-svn: 203001
* Fix an inconsistency in treatment of trailing / in path::const_iteratorBen Langmuir2014-03-052-8/+34
| | | | | | | | | When using a //net/ path, we were transforming the trailing / into a '.' when the path was just the root path and we were iterating backwards. Forwards iteration and other kinds of root path (C:\, /) were already correct. llvm-svn: 202999
* ConstantFolding: Also fold the vector overloads of our math intrinsics.Benjamin Kramer2014-03-052-34/+81
| | | | llvm-svn: 202997
* Lower AVX v4i64->v4i32 truncate to one shuffle.Cameron McInally2014-03-052-15/+7
| | | | llvm-svn: 202996
* Fix clang -Werror build break due to mismatched sign comparison.David Blaikie2014-03-051-1/+1
| | | | | | Originally committed in r202985. llvm-svn: 202992
* Work around MSVC bug in IntrusiveRefCntPtr.hHans Wennborg2014-03-051-1/+1
| | | | | | | | | | | The build was failing with: error C2664: 'std::atomic_int::atomic_int(const std::atomic_int &)' : cannot convert argument 1 from 'int' to 'const std::atomic_int &' Apparently "std::atomic_int x(0)" doesn't work, but "std::atomic<int> x(0)" does. llvm-svn: 202988
* ARM: Correctly align arguments after a byval struct is passed on the stackOliver Stannard2014-03-058-67/+245
| | | | llvm-svn: 202985
* Add a ThreadSafeRefCountedBaseBen Langmuir2014-03-051-0/+26
| | | | | | | A version of RefCountedBase that uses std::atomic_int to store its reference count. llvm-svn: 202984
* [LangRef] Improve llvm.mem.parallel_loop_access exampleTobias Grosser2014-03-051-8/+9
| | | | | | | | | | | | | | | | | | | | The following changes have been applied: - Removed 'align 4'. We can simplify this away, as it does not provide useful information in the example. - Use named instructions instead of '%0'. This is nicer, but more importantly this makes the IR valid. Before we had two assignments to %0 in a single example. - Add a missing branch instruction to make the loop structure clear. - Move one access into outer.for.body to make it not look that empty. - The statments that are only in the outer loop body should not reference the inner loop metadata, but only the outer loop. Only statements in both loops should reference both surrounding loops. - Rename the array indexes to make them all independent. Before there were identical array indexes in the inner and the outer loop. We want to avoid this special case as it may lead to confusion. llvm-svn: 202973
* Enable integrated assembler on OpenBSD/PPC32 by default, too.Joerg Sonnenberger2014-03-051-1/+2
| | | | | | From Brad Smith. llvm-svn: 202967
* This patch implements .set dsp directive and sets appropriate feature ↵Vladimir Medic2014-03-054-0/+24
| | | | | | bits.This directive is a counterpart of -mattr=dsp command line option with the exception that it does not influence elf header flags. The usage example is gives in test file. llvm-svn: 202966
* Add missing parenthesis in SCEV commentTobias Grosser2014-03-051-1/+1
| | | | | Contributed-by: Michael Zolutukin <mzolotukhin@apple.com> llvm-svn: 202963
* [Layering] Move AutoUpgrade.h into the IR library where itsChandler Carruth2014-03-054-6/+6
| | | | | | implementation already lives. llvm-svn: 202961
* [Layering] Move DebugLoc.h into the IR library. The implementationChandler Carruth2014-03-0516-18/+18
| | | | | | | | | | | already lived there and it is where it belongs -- this is the in-memory debug location representation. This is just cleanup -- Modules can actually cope with this, but that doesn't make it right. After chatting with folks that have out-of-tree stuff, going ahead and moving the rest of the headers seems preferable. llvm-svn: 202960
* [C++11] Add overloads for externally used OwningPtr functions.Ahmed Charles2014-03-059-35/+150
| | | | | | | | This will allow external callers of these functions to switch over time rather than forcing a breaking change all a once. These particular functions were determined by building clang/lld/lldb. llvm-svn: 202959
* [C++11] Make this interface accept const Use pointers and use overrideChandler Carruth2014-03-055-12/+12
| | | | | | | | to ensure we don't mess up any of the overrides. Necessary for cleaning up the Value use iterators and enabling range-based traversing of use lists. llvm-svn: 202958
* [C++11] Replace OwningPtr::take() with OwningPtr::release().Ahmed Charles2014-03-0543-117/+117
| | | | llvm-svn: 202957
* [C++11] Add 'override' keyword to virtual methods that override their base ↵Craig Topper2014-03-0587-300/+342
| | | | | | class. llvm-svn: 202953
* [C++11] Add release() to OwningPtr.Ahmed Charles2014-03-052-0/+20
| | | | | | | This will make the transition to unique_ptr easier by allowing more incremental changes. llvm-svn: 202949
* [C++11] Add 'override' keyword to virtual methods that override their base ↵Craig Topper2014-03-0511-61/+62
| | | | | | class. llvm-svn: 202946
* [C++11] Add 'override' keyword to virtual methods that override their base ↵Craig Topper2014-03-0545-254/+252
| | | | | | class. llvm-svn: 202945
* Make stackmap machineinstrs clobber the scratch regs too.Andrew Trick2014-03-052-6/+32
| | | | | | | | | | | | | Patchpoints already did this. Doing it for stackmaps is a convenience for the runtime in the event that it needs to scratch register to patch or perform a runtime call thunk. Unlike patchpoints, we just assume the AnyRegCC calling convention. This is the only language and target independent calling convention specific to stackmaps so makes sense. Although the calling convention is not currently used to select the scratch registers. llvm-svn: 202943
* [C++11] Add 'override' keyword to IR library.Craig Topper2014-03-0522-201/+206
| | | | llvm-svn: 202939
* [C++11] Add 'override' keywords to tablegen code.Craig Topper2014-03-056-420/+413
| | | | llvm-svn: 202937
* [C API] Implement LLVM{Get,Set}Alignment for AllocaInst.Peter Zotov2014-03-052-2/+10
| | | | | | Patch by Manuel Jacob. llvm-svn: 202936
* Remove unnecessary variables.Ahmed Charles2014-03-051-2/+2
| | | | | | Found self-hosting clang-cl on windows. :) llvm-svn: 202935
* Fix unused variable in FunctionLoweringInfo.cppHans Wennborg2014-03-051-1/+1
| | | | llvm-svn: 202932
* Check for dynamic allocas and inline asm that clobbers sp before buildingHans Wennborg2014-03-057-11/+91
| | | | | | | | | | | | | | | | | | | selection dag (PR19012) In X86SelectionDagInfo::EmitTargetCodeForMemcpy we check with MachineFrameInfo to make sure that ESI isn't used as a base pointer register before we choose to emit rep movs (which clobbers esi). The problem is that MachineFrameInfo wouldn't know about dynamic allocas or inline asm that clobbers the stack pointer until SelectionDAGBuilder has encountered them. This patch fixes the problem by checking for such things when building the FunctionLoweringInfo. Differential Revision: http://llvm-reviews.chandlerc.com/D2954 llvm-svn: 202930
* Change x86mmx -> x86_mmx in LangRef.rstReid Kleckner2014-03-051-7/+5
| | | | | | | | | | | The correct name of the type in LLVM assembly is "x86_mmx". Also remove the reST label "t_x86mmx" because it was unused anyway. Patch by Manuel Jacob! Differential Revision: http://llvm-reviews.chandlerc.com/D2955 llvm-svn: 202929
* C API: Add functions to get or set a GlobalValue's DLLStorageClassReid Kleckner2014-03-052-0/+18
| | | | | | Patch by Manuel Jacob! llvm-svn: 202928
* LangRef: Remove stale docs on LLVM types in module structureReid Kleckner2014-03-051-19/+10
| | | | | | | | | The distinction between "identified" and "literal" struct types is fully documented in a later section. Patch by Philip Reames! llvm-svn: 202927
* Make the DIEValue constructor even more explicit.Eric Christopher2014-03-051-6/+6
| | | | llvm-svn: 202926
* Trivial test commit.Raul E. Silvera2014-03-051-0/+1
| | | | llvm-svn: 202924
* [C++11] Sink the iterator over a Value's users into the Value typeChandler Carruth2014-03-054-59/+60
| | | | | | | | | | | | | | itself and teach it to convert between the non-const and const variants. De-templatetize its usage in APIs to just use the const variant which always works for those use cases. Also, rename its implementation to reflect that it is an iterator over *users* not over *uses*. This is a step toward providing both iterator and range support for walking the *uses* distinct from the *users*. In a subsequent patch this will get renamed to make it clear that this is an adaptor over the fundamental use iterator. llvm-svn: 202923
* Use a bool for whether or not an abbreviation has children rather thanEric Christopher2014-03-053-16/+17
| | | | | | | using a full uint16_t with the flag value... which happens to be 0 or 1. Update the class for bool values and rename functions slightly. llvm-svn: 202921
* Use dwarf::Attribute instead of a bare uint16_t.Eric Christopher2014-03-052-2/+2
| | | | llvm-svn: 202920
* Expand slightly on comment.Eric Christopher2014-03-051-1/+2
| | | | llvm-svn: 202919
* Unindent namespace.Eric Christopher2014-03-051-414/+436
| | | | llvm-svn: 202918
* Update comment.Eric Christopher2014-03-051-1/+1
| | | | llvm-svn: 202917
* Partially roll back r202915.Rui Ueyama2014-03-051-2/+1
| | | | | | | I did not intend to cast a pointer to ulittle32_t there because the return type is const void*. llvm-svn: 202916
* Fix endianness bug.Rui Ueyama2014-03-051-3/+6
| | | | | | | | Looks like llvm-readobj is the only customer of this code, and apparently there's no test to cover this function. I'll write it after finishing plumbing from llvm-objdump to there. llvm-svn: 202915
* Allow constant folding of fma and fmuladdMatt Arsenault2014-03-052-0/+66
| | | | llvm-svn: 202914
* Fix duplicate code in ConstantFoldingMatt Arsenault2014-03-051-54/+33
| | | | llvm-svn: 202913
* [DAGCombiner] Factor out distributeTruncateThroughAndAdam Nemet2014-03-041-47/+42
| | | | | | | | | Currently this code is duplicated across visitSHL, visitSRA and visitSRL. The plan is to add rotates as clients to this new function. There is no functional change intended here. llvm-svn: 202908
* Remove a special character in comment that accidentially got committed.Evan Cheng2014-03-041-1/+1
| | | | llvm-svn: 202905
OpenPOWER on IntegriCloud