summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix a bug in TableGen where the intrinsic function name recognizer could ↵Justin Holewinski2013-07-252-0/+53
| | | | | | | | | | | | | | | | | mis-identify names if one was a prefix substring of the other For two intrinsics 'llvm.nvvm.texsurf.handle' and 'llvm.nvvm.texsurf.handle.internal', TableGen was emitting matching code like: if (Name.startswith("llvm.nvvm.texsurf.handle")) ... if (Name.startswith("llvm.nvvm.texsurf.handle.internal")) ... We can never match "llvm.nvvm.texsurf.handle.internal" here because it will always be erroneously matched by the first condition. The fix is to sort the intrinsic names and emit them in reverse order. llvm-svn: 187119
* Fix a comment cut-&-pasto.Richard Sandiford2013-07-251-1/+1
| | | | llvm-svn: 187117
* [SystemZ] Rework compare and branch supportRichard Sandiford2013-07-256-62/+151
| | | | | | | | | | | | | | Before the patch we took advantage of the fact that the compare and branch are glued together in the selection DAG and fused them together (where possible) while emitting them. This seemed to work well in practice. However, fusing the compare so early makes it harder to remove redundant compares in cases where CC already has a suitable value. This patch therefore uses the peephole analyzeCompare/optimizeCompareInstr pair of functions instead. No behavioral change intended, but it paves the way for a later patch. llvm-svn: 187116
* [SystemZ] Add LOCR and LOCGRRichard Sandiford2013-07-259-0/+327
| | | | llvm-svn: 187113
* [SystemZ] Add LOC and LOCGRichard Sandiford2013-07-259-0/+561
| | | | | | | As with the stores, these instructions can trap when the condition is false, so they are only used for things like (cond ? x : *ptr). llvm-svn: 187112
* [SystemZ] Add STOC and STOCGRichard Sandiford2013-07-2514-53/+664
| | | | | | | | These instructions are allowed to trap even if the condition is false, so for now they are only used for "*ptr = (cond ? x : *ptr)"-style constructs. llvm-svn: 187111
* MI Sched: Register pressure heuristics.Andrew Trick2013-07-252-8/+36
| | | | | | Consider which set is being increased or decreased before comparing. llvm-svn: 187110
* MI Sched: track register pressure by importance of the set, not weight of ↵Andrew Trick2013-07-251-14/+20
| | | | | | the units. llvm-svn: 187109
* RegPressure: Order the "pressure sets" by number of regunits per set.Andrew Trick2013-07-253-8/+53
| | | | | | This lets heuristics easily pick the most important set to follow. llvm-svn: 187108
* Dump LIS before regalloc. MI sched changes them.Andrew Trick2013-07-252-2/+4
| | | | llvm-svn: 187107
* Debug Info: improve the verifier to check field types.Manman Ren2013-07-2535-167/+217
| | | | | | | | Make sure the context and type fields are MDNodes. We will generate verification errors if those fields are non-empty strings. Fix testing cases to make them pass the verifier. llvm-svn: 187106
* Respect llvm.used in Internalize.Rafael Espindola2013-07-255-21/+69
| | | | | | | | | | | | | | | The language reference says that: "If a symbol appears in the @llvm.used list, then the compiler, assembler, and linker are required to treat the symbol as if there is a reference to the symbol that it cannot see" Since even the linker cannot see the reference, we must assume that the reference can be using the symbol table. For example, a user can add __attribute__((used)) to a debug helper function like dump and use it from a debugger. llvm-svn: 187103
* Check that TD isn't NULL before dereferencing it down this path.Nick Lewycky2013-07-252-1/+18
| | | | llvm-svn: 187099
* Make these methods const correct.Rafael Espindola2013-07-253-7/+13
| | | | | | Thanks to Nick Lewycky for noticing it. llvm-svn: 187098
* Replace the "NoFramePointerElimNonLeaf" target option with a function attribute.Bill Wendling2013-07-2511-53/+59
| | | | | | | | There's no need to specify a flag to omit frame pointer elimination on non-leaf nodes...(Honestly, I can't parse that option out.) Use the function attribute stuff instead. llvm-svn: 187093
* Add helpful accessor methods to get the specified function attribute.Bill Wendling2013-07-241-11/+14
| | | | llvm-svn: 187088
* Update testing cases to pass debug info verifier.Manman Ren2013-07-2426-208/+223
| | | | llvm-svn: 187083
* Speling.Jakob Stoklund Olesen2013-07-241-2/+2
| | | | llvm-svn: 187076
* Fix a bug in IfConverter with nested predicates.Quentin Colombet2013-07-242-3/+62
| | | | | | | | | | | | | | | | | | | Prior to this patch, IfConverter may widen the cases where a sequence of instructions were executed because of the way it uses nested predicates. This result in incorrect execution. For instance, Let A be a basic block that flows conditionally into B and B be a predicated block. B can be predicated with A.BrToBPredicate into A iff B.Predicate is less "permissive" than A.BrToBPredicate, i.e., iff A.BrToBPredicate subsumes B.Predicate. The IfConverter was checking the opposite: B.Predicate subsumes A.BrToBPredicate. <rdar://problem/14379453> llvm-svn: 187071
* Update testing cases to pass debug info verifier.Manman Ren2013-07-246-57/+62
| | | | llvm-svn: 187066
* add -disable-debug-info-verifier to 3 test to fix tests with pipefail.Rafael Espindola2013-07-243-3/+3
| | | | llvm-svn: 187064
* [mips] Make MipsAsmParser::parseCCRRegs return NoMatch instead of ParseFailAkira Hatanaka2013-07-241-2/+2
| | | | | | | when there wasn't a match. This behavior is consistent with other register parsing methods. llvm-svn: 187063
* Update old llc documentation.Jakob Stoklund Olesen2013-07-241-9/+9
| | | | | | Patch by Hafiz Abid! llvm-svn: 187056
* [mips] Remove XFAIL from test-ptr-reloc-remote.llPetar Jovanovic2013-07-241-1/+0
| | | | | | | The change r187019 has fixed multiple relocations in dynamic linker for MIPS, so now this test passes for MIPS. llvm-svn: 187053
* Debug Info: improve the Finder.Manman Ren2013-07-2412-62/+65
| | | | | | | Improve the Finder to handle context of a DIVariable used by DbgValueInst. Fix testing cases to make them pass the verifier. llvm-svn: 187052
* TRE: Move class into anonymous namespace.Benjamin Kramer2013-07-241-4/+6
| | | | | | While there shrink a dangerously large SmallPtrSet. llvm-svn: 187050
* Update testing cases to pass debug info verifier.Manman Ren2013-07-243-39/+40
| | | | llvm-svn: 187049
* Add -disable-debug-info-verifier to a RUN line.Rafael Espindola2013-07-241-1/+1
| | | | | | Found by running the test with pipefail enabled. llvm-svn: 187046
* Don't leak when expanding response files.Rafael Espindola2013-07-241-17/+15
| | | | | | | | | | | | | | Before this patch we would strdup each argument. If one was a response file, we would replace it with the response file contents, leaking the original strdup result. We now don't strdup the originals and let StringSaver free any memory it allocated. This also saves a bit of malloc traffic when response files are not used. Leak found by the valgrind build bot. llvm-svn: 187042
* Delete the buffer in createObjectFile if it fails.Rafael Espindola2013-07-241-1/+4
| | | | | | | | | | The Binary constructor takes ownership of the memory buffer. This is a fairly unfortunate interface, but for now make createObjectFile consistent with it by also deleting the buffer if it fails. Fixes a leak in llvm-ar found by the valgrind bots. llvm-svn: 187039
* llvm-ar is far closer to being a regular ar implementation now. Update the docs.Rafael Espindola2013-07-241-47/+7
| | | | llvm-svn: 187034
* [test commit] Minor comment change.Petar Jovanovic2013-07-241-3/+3
| | | | | | Testing commit access credentials. llvm-svn: 187032
* Fix a problem I introduced in r187029 where we would over-eagerlyChandler Carruth2013-07-242-3/+46
| | | | | | | | schedule an alloca for another iteration in SROA. This only showed up with a mixture of promotable and unpromotable selects and phis. Added a test case for this. llvm-svn: 187031
* I'm starting to commit KNL backend. I'll push patches one-by-one. This patch ↵Elena Demikhovsky2013-07-248-27/+190
| | | | | | | | includes support for the extended register set XMM16-31, YMM16-31, ZMM0-31. The full ISA you can see here: http://software.intel.com/en-us/intel-isa-extensions llvm-svn: 187030
* Fix PR16687 where we were incorrectly promoting an alloca that hadChandler Carruth2013-07-242-12/+66
| | | | | | | | | | | | | | | | | | | | | | pending speculation for a phi node. The problem here is that we were using growth of the specluation set as an indicator of whether speculation would occur, and if the phi node is already in the set we don't see it grow. This is a symptom of the fact that this signal is a total hack. Unfortunately, I couldn't really come up with a non-hacky way of signaling that promotion remains valid *after* speculation occurs, such that we only speculate when all else looks good for promotion. In the end, I went with at least a much more explicit approach of doing the work of queuing inside the phi and select processing and setting a preposterously named flag to convey that we're in the special state of requiring speculating before promotion. Thanks to Richard Trieu and Nick Lewycky for the excellent work reducing a testcase for this from a pretty giant, nasty assert in a big application. =] The testcase was excellent. llvm-svn: 187029
* allow tests to run on powerpc-darwin8 again, checking for __ppc__David Fang2013-07-241-2/+2
| | | | llvm-svn: 187027
* Split generated asm mnemonic matching table into a separate table for each ↵Craig Topper2013-07-247-40/+77
| | | | | | | | asm variant. This removes the need to store the asm variant in each row of the single table that existed before. Shaves ~16K off the size of X86AsmParser.o. llvm-svn: 187026
* Revert accidental commit.Craig Topper2013-07-241-1/+1
| | | | llvm-svn: 187021
* Fix aliases for shrd/shld to handle Intel syntax properly. Also suppress ↵Craig Topper2013-07-242-14/+14
| | | | | | them from being used by the asm printer. llvm-svn: 187020
* [mips] Use pristine object file while processing relocations.Akira Hatanaka2013-07-244-7/+26
| | | | | | | | | | | | | | | | | | | Similar to ARM change r182800, dynamic linker will read bits/addends from the original object rather than from the object that might have been patched previously. For the purpose of relocations for MCJIT stubs on MIPS, we internally use otherwise unused MIPS relocations. The change also enables MCJIT unit tests for MIPS (EL/BE), and the following two tests now pass: - MCJITTest.return_global and - MCJITTest.multiple_functions. These issues have been tracked as Bug 16250. Patch by Petar Jovanovic. llvm-svn: 187019
* Replace with a "null" RAUW with an assert since we'd actually likeEric Christopher2013-07-241-8/+8
| | | | | | to assume we're replacing. Clarify comments. llvm-svn: 187018
* Remove dead code.Eric Christopher2013-07-242-6/+0
| | | | llvm-svn: 187017
* Update testing cases to make them pass debug info verification.Manman Ren2013-07-243-28/+31
| | | | llvm-svn: 187016
* Remove unnecessary constructors as the default conversions will handleEric Christopher2013-07-242-34/+5
| | | | | | | all enumerated cases. Reformat the rest of the existing constructors to match. llvm-svn: 187015
* More constructor cleanup.Eric Christopher2013-07-242-8/+2
| | | | | | | Move to a single constructor with a default argument and avoid the check and nullification. llvm-svn: 187014
* Collapse logic and move and reword comment for clarity.Eric Christopher2013-07-241-3/+5
| | | | llvm-svn: 187013
* Add a fixme and reformat.Eric Christopher2013-07-241-4/+3
| | | | llvm-svn: 187012
* Remove one more of these.Eric Christopher2013-07-241-4/+1
| | | | llvm-svn: 187011
* Remove more dead/weird/misleading code.Eric Christopher2013-07-241-4/+1
| | | | llvm-svn: 187010
* Remove more seemingly unused code.Eric Christopher2013-07-241-8/+4
| | | | llvm-svn: 187009
OpenPOWER on IntegriCloud