summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix typosMatt Arsenault2014-06-032-8/+8
| | | | llvm-svn: 210135
* Calculate dead instructions when a live interval is created.Pete Cooper2014-06-032-9/+29
| | | | | | | | This gets us closer to being able to remove LiveVariables entirely which is where dead instructions are currently tagged as such. Reviewed by Jakob Olesen llvm-svn: 210132
* Revert r209381 as it isn't a local variable. Add a testcase so thatEric Christopher2014-06-032-0/+24
| | | | | | we know next time this happens. llvm-svn: 210127
* Fixup formatting in the pass.Eric Christopher2014-06-031-86/+86
| | | | llvm-svn: 210126
* Update comments to match reality.Rafael Espindola2014-06-031-4/+4
| | | | llvm-svn: 210125
* Fix a small bug in the parsing of anonymous globals.Rafael Espindola2014-06-032-0/+4
| | | | | | | | | | | | It was able to parse hidden dllexport global i32 42 but not dllexport global i32 42 llvm-svn: 210121
* Simplify the parsing of unnamed globals. No functionality changed.Rafael Espindola2014-06-031-31/+12
| | | | llvm-svn: 210120
* Update comment. This should have been part of r210062.Rafael Espindola2014-06-031-2/+0
| | | | llvm-svn: 210119
* Remove some redundant doc commentsAlp Toker2014-06-031-8/+0
| | | | llvm-svn: 210118
* [AArch64] Fix typo in load/store optimizer.Tilmann Scheller2014-06-031-1/+1
| | | | llvm-svn: 210114
* [AArch64] Add regression tests for the load/store optimizer which cover ↵Tilmann Scheller2014-06-031-0/+130
| | | | | | | | | | | | | | | | post-index update folding with sub rather than add. The tests check that the following transform happens: (ldr|str) X, [x20] ... sub x20, x20, #16 -> (ldr|str) X, [x20], #-16 with X being either w0, x0, s0, d0 or q0. llvm-svn: 210113
* Implement one operator== with another.Rafael Espindola2014-06-031-1/+1
| | | | | | Thanks for David Blaikie for the suggestion. llvm-svn: 210107
* [asan] Fix coverage instrumentation with -asan-globals=0.Evgeniy Stepanov2014-06-032-25/+44
| | | | llvm-svn: 210103
* AArch64: mark small types (i1, i8, i16) as promotedTim Northover2014-06-034-34/+27
| | | | | | | | | This means the output of LowerFormalArguments returns a lowered SDValue with the correct type (expected in SelectionDAGBuilder). Without this, an assertion under a DEBUG macro triggers when those types are passed on the stack. llvm-svn: 210102
* Add operator== and operator!= to compare with nullptr.Rafael Espindola2014-06-031-0/+20
| | | | llvm-svn: 210100
* Use an enum class.Rafael Espindola2014-06-032-19/+10
| | | | llvm-svn: 210078
* Use an enum class.Rafael Espindola2014-06-032-11/+3
| | | | | | Might also fix the windows build. llvm-svn: 210077
* Remove the last unspecified_bool_type from llvm.Rafael Espindola2014-06-031-4/+1
| | | | llvm-svn: 210076
* Make this operator bool() explicit to match the standard library.Rafael Espindola2014-06-031-6/+1
| | | | llvm-svn: 210073
* Make this operator bool() explicit to match the standard library.Rafael Espindola2014-06-032-29/+26
| | | | llvm-svn: 210072
* Ignore line numbers on debug intrinsics. Add an assert to ensure that we ↵Nick Lewycky2014-06-032-2/+147
| | | | | | aren't emitting line number zero, the .gcno format uses this to indicate that the next field is a filename. llvm-svn: 210068
* [AArch64] Correctly deal with VPR stack parameter passing.Jiangning Liu2014-06-032-3/+18
| | | | llvm-svn: 210067
* Process::GetRandomNumber(): fix insecure RNGAlp Toker2014-06-031-2/+3
| | | | | | | This could have generated non-random output under error conditions in release builds. llvm-svn: 210065
* Allow alias to point to an arbitrary ConstantExpr.Rafael Espindola2014-06-0342-316/+267
| | | | | | | | | | | | | | | | | | | | | This patch changes GlobalAlias to point to an arbitrary ConstantExpr and it is up to MC (or the system assembler) to decide if that expression is valid or not. This reduces our ability to diagnose invalid uses and how early we can spot them, but it also lets us do things like @test5 = alias inttoptr(i32 sub (i32 ptrtoint (i32* @test2 to i32), i32 ptrtoint (i32* @bar to i32)) to i32*) An important implication of this patch is that the notion of aliased global doesn't exist any more. The alias has to encode the information needed to access it in its metadata (linkage, visibility, type, etc). Another consequence to notice is that getSection has to return a "const char *". It could return a NullTerminatedStringRef if there was such a thing, but when that was proposed the decision was to just uses "const char*" for that. llvm-svn: 210062
* Add back commit r210029.Rafael Espindola2014-06-027-16/+31
| | | | | | | | The code was actually correct. Sorry for the confusion. I have expanded the comment saying why the analysis is valid to avoid me misunderstaning it again in the future. llvm-svn: 210052
* Convert test to FileCheck.Rafael Espindola2014-06-021-4/+6
| | | | llvm-svn: 210049
* Revert "Add the nsw flag when we detect that an add will not signed overflow."Rafael Espindola2014-06-027-17/+12
| | | | | | | | | This reverts commit r210029. It was not correctly handling cases where LHS and RHS had multiple but different sign bits. llvm-svn: 210048
* InitLibcallNames can take a Triple instead of a TargetMachine.Eric Christopher2014-06-021-4/+4
| | | | llvm-svn: 210045
* Added support to optimize comparisons with "lshr exact" of a constant.Rafael Espindola2014-06-022-6/+37
| | | | | | Patch by Rahul Jain. llvm-svn: 210040
* Remove sanitizer blacklist from ASan/TSan/MSan function passes.Alexey Samsonov2014-06-024-49/+17
| | | | | | | | | | | | | | | | | Instrumentation passes now use attributes address_safety/thread_safety/memory_safety which are added by Clang frontend. Clang parses the blacklist file and adds the attributes accordingly. Currently blacklist is still used in ASan module pass to disable instrumentation for certain global variables. We should fix this as well by collecting the set of globals we're going to instrument in Clang and passing it to ASan in metadata (as we already do for dynamically-initialized globals and init-order checking). This change also removes -tsan-blacklist and -msan-blacklist LLVM commandline flags in favor of -fsanitize-blacklist= Clang flag. llvm-svn: 210038
* Omit else branch after return.Eric Christopher2014-06-021-2/+4
| | | | llvm-svn: 210034
* [X86] Fix checked arithmetic for i8 on X86.Andrea Di Biagio2014-06-022-2/+27
| | | | | | | | | | | When lowering a ISD::BRCOND into a test+branch, make sure that we always use the correct condition code to emit the test operation. This fixes PR19858: "i8 checked mul is wrong on x86". Patch by Keno Fisher! llvm-svn: 210032
* Add the nsw flag when we detect that an add will not signed overflow.Rafael Espindola2014-06-027-12/+17
| | | | | | | We already had a function for checking this, we were just using it only in specialized cases. llvm-svn: 210029
* [msan] Remove an out-of-date comment.Evgeniy Stepanov2014-06-021-2/+0
| | | | | | MSan is no longer an "early prototype". llvm-svn: 210023
* Remove path_tclsh.m4.Rafael Espindola2014-06-021-39/+0
| | | | | | Looks like it was only used by dejagnu and is now dead. llvm-svn: 210022
* [AArch64] Add some more regression tests for store pre-index update folding ↵Tilmann Scheller2014-06-021-0/+105
| | | | | | | | | | | | | | | | in the load/store optimizer. Add tests for the following transform: add x8, x8, #16 ... str X, [x8] -> str X, [x8, #16]! with X being either w0, x0, s0, d0 or q0. llvm-svn: 210021
* [msan] Handle x86 vector pack intrinsics.Evgeniy Stepanov2014-06-022-0/+74
| | | | llvm-svn: 210020
* [AArch64] Add some more regression tests for load pre-index update folding ↵Tilmann Scheller2014-06-021-0/+106
| | | | | | | | | | | | | | | | in the load/store optimizer. Add tests for the following transform: add x8, x8, #16 ... ldr X, [x8] -> ldr X, [x8, #16]! with X being either w0, x0, s0, d0 or q0. llvm-svn: 210018
* Added inst combine tarnsform for (1 << X) & C pattrens where C is (some ↵Dinesh Dwivedi2014-06-022-8/+41
| | | | | | | | | | | | PowerOf2 - 1) This patch can handles following cases from http://nondot.org/sabre/LLVMNotes/InstCombine.txt "((1 << X) & 7) == 0" ==> "X > 2" "((1 << X) & 7) != 0" ==> "X < 3". Differential Revision: http://reviews.llvm.org/D3678 llvm-svn: 210007
* Added inst combine transforms for single bit tests from Chris's noteDinesh Dwivedi2014-06-022-1/+133
| | | | | | | | | | | | if ((x & C) == 0) x |= C becomes x |= C if ((x & C) != 0) x ^= C becomes x &= ~C if ((x & C) == 0) x ^= C becomes x |= C if ((x & C) != 0) x &= ~C becomes x &= ~C if ((x & C) == 0) x &= ~C becomes nothing Differential Revision: http://reviews.llvm.org/D3777 llvm-svn: 210006
* Silence -Wreturn-type warningAlp Toker2014-06-021-0/+1
| | | | llvm-svn: 210005
* GraphWriter: tweak the program fallback orderAlp Toker2014-06-021-1/+1
| | | | | | | Amend r210001 to use the classic fallback order behaviour if the requested graphing program isn't found. llvm-svn: 210003
* GraphWriter: detect graph viewer programs at runtimeAlp Toker2014-06-029-374/+137
| | | | | | | | | | | | | | | | | | | | | | Replace the crufty build-time configure checks for program paths with equivalent runtime logic. This lets users install graphing tools as needed without having to reconfigure and rebuild LLVM, while eliminating a long chain of inappropriate compile dependencies that included GUI programs and the windowing system. Additional features: * Support the OS X 'open' command to view graphs generated by any of the Graphviz utilities. This is an alternative to the Graphviz OS X UI which is no longer available on Mountain Lion. * Produce informative log output upon failure to indicate which programs can be installed to view graphs. Ping me if this doesn't work for your particular environment. llvm-svn: 210001
* Instruction::isIdenticalToWhenDefined(): Check getNumOperands() in advance ↵NAKAMURA Takumi2014-06-021-0/+4
| | | | | | | | of std::equal(op) to appease MSVC Debug build. MSVC Debug build is confused with (possibly invalid) op_begin(), if op_begin() == op_end(). llvm-svn: 210000
* Support: add 6-parameter formatSaleem Abdulrasool2014-06-021-0/+39
| | | | | | | | Since we cannot yet use variadic templates, add a specialisation for 6-parameters to format. This is motivated by a need for the additional parameter for formatting information for an unwind decoder for Windows on ARM. llvm-svn: 209999
* Support: add Windows ARM EH data structuresSaleem Abdulrasool2014-06-023-0/+415
| | | | | | | | | | | | | | | | | | | | | | | | | | | Introduce the support structures necessary to deal with the Windows ARM EH data. These definitions are extremely aggressive about assertions to aid future use for generation of the entries and subsequent decoding. The names for the various fields are meant to reflect the names used by the Visual Studio toolchain to aid communication. Due to the complexity in reading a few of the values, there are a couple of additional utility functions to decode the information. In general, there are two ways to encode the unwinding information: - packed, which places the data inline into the _IMAGE_ARM_RUNTIME_FUNCTION_ENTRY structure. - unpacked, which places the data into auxiliary structures placed into the .xdata section. The set of structures allow reading of data in either encoding, with the minor caveat that epilogue scopes need to be decoded manually by constructing the structure from the data returned by the RuntimeFunction structure. These definitions are meant for read-only access at the current point as the first use of them will be to decode the exception information. llvm-svn: 209998
* ARMEB: Fix function return type f64Christian Pirker2014-06-012-0/+14
| | | | | | Reviewed at http://reviews.llvm.org/D3968 llvm-svn: 209990
* Updates in IntelJITEventListener.cpp - by Arch Robison.Elena Demikhovsky2014-06-011-2/+2
| | | | | | This patch updates IntelJITEventListener.cpp to account for revision 206654, which removed some methods from DILineInfo. llvm-svn: 209989
* R600: Set all float vector expands in the same placeMatt Arsenault2014-06-011-5/+2
| | | | llvm-svn: 209988
* DebugInfo: Assert that DbgVariables have associated DIEsDavid Blaikie2014-06-013-3/+393
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was previously committed in r209680 and reverted in r209683 after it caused sanitizer builds to crash. The issue seems to be that the DebugLoc associated with dbg.value IR intrinsics isn't necessarily accurate. Instead, we duplicate the DIVariables and add an InlinedAt field to them to record their location. We were using this InlinedAt field to compute the LexicalScope for the variable, but not using it in the abstract DbgVariable construction and mapping. This resulted in a formal parameter to the current concrete function, correctly having no InlinedAt information, but incorrectly having a DebugLoc that described an inlined location within the function... thus an abstract DbgVariable was created for the variable, but its DIE was never constructed (since the LexicalScope had no such variable). This DbgVariable was silently ignored (by testing for a non-null DIE on the abstract DbgVariable). So, fix this by using the right scoping information when constructing abstract DbgVariables. In the long run, I suspect we want to undo the work that added this second kind of location tracking and fix the places where the DebugLoc propagation on the dbg.value intrinsic fails. This will shrink debug info (by not duplicating DIVariables), make it more efficient (by not having to construct new DIVariable metadata nodes to try to map back to a single variable), and benefit all instructions. But perhaps there are insurmountable issues with DebugLoc quality that I'm unaware of... I just don't know how we can't /just keep the DebugLoc from the dbg.declare to the dbg.values and never get this wrong/. Some history context: http://llvm.org/viewvc/llvm-project?view=revision&revision=135629 http://llvm.org/viewvc/llvm-project?view=revision&revision=137253 llvm-svn: 209984
OpenPOWER on IntegriCloud