oota-llvm.git
13 years agoAdd an assertion to catch attempts to access off the end of the array.
Duncan Sands [Mon, 10 May 2010 04:54:28 +0000 (04:54 +0000)]
Add an assertion to catch attempts to access off the end of the array.
Based on a patch by Javier Martinez.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103391 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoremove a dead file.
Chris Lattner [Sun, 9 May 2010 17:34:13 +0000 (17:34 +0000)]
remove a dead file.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103383 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoupdated handling dllexport in X86AsmPrinter
Nathan Jeffords [Sun, 9 May 2010 08:40:06 +0000 (08:40 +0000)]
updated handling dllexport in X86AsmPrinter

changed dllexport code to use EmitBytes instead of EmitRawText, and changed the export option to use /EXPORT: instead of -export: on the windows platform

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103377 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agomade COFF target dllexport logic apply to all subtargets
Nathan Jeffords [Sun, 9 May 2010 05:52:28 +0000 (05:52 +0000)]
made COFF target dllexport logic apply to all subtargets

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103373 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agotest commit, added a comment to MCSectionCOFF::PrintSwitchToSection function
Nathan Jeffords [Sun, 9 May 2010 05:49:00 +0000 (05:49 +0000)]
test commit, added a comment to MCSectionCOFF::PrintSwitchToSection function

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103372 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agomake simplifycfg insert an llvm.trap before the 'unreachable' it introduces
Chris Lattner [Sat, 8 May 2010 22:15:59 +0000 (22:15 +0000)]
make simplifycfg insert an llvm.trap before the 'unreachable' it introduces
when it detects undefined behavior.  llvm.trap generally codegens into some
thing really small (e.g. a 2 byte ud2 instruction on x86) and debugging this
sort of thing is "nontrivial".  For example, we now compile:

void foo() { *(int*)0 = 42; }

into:

_foo:
pushl %ebp
movl %esp, %ebp
ud2

Some may even claim that this is a security hole, though that seems dubious
to me.  This addresses rdar://7958343 - Optimizing away null dereference
potentially allows arbitrary code execution

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103356 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoTeach instcombine to transform a bitcast/(zext|trunc)/bitcast sequence
Chris Lattner [Sat, 8 May 2010 21:50:26 +0000 (21:50 +0000)]
Teach instcombine to transform a bitcast/(zext|trunc)/bitcast sequence
with a vector input and output into a shuffle vector.  This sort of
sequence happens when the input code stores with one type and reloads
with another type and then SROA promotes to i96 integers, which make
everyone sad.

This fixes rdar://7896024

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103354 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix PR7052, patch by Jakub Staszak!
Chris Lattner [Sat, 8 May 2010 20:01:44 +0000 (20:01 +0000)]
Fix PR7052, patch by Jakub Staszak!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103347 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agobreak coff symbol definition stuff out into proper MCStreamer callbacks,
Chris Lattner [Sat, 8 May 2010 19:54:22 +0000 (19:54 +0000)]
break coff symbol definition stuff out into proper MCStreamer callbacks,
patch by Nathan Jeffords!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103346 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoReadd testcase.
Bill Wendling [Sat, 8 May 2010 04:47:54 +0000 (04:47 +0000)]
Readd testcase.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103335 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRun interrupt routines as part of report_fatal_error, since we are failing
Daniel Dunbar [Sat, 8 May 2010 02:10:36 +0000 (02:10 +0000)]
Run interrupt routines as part of report_fatal_error, since we are failing
ungracefully.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103334 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd llvm::sys::RunInterruptHandlers(), which runs the registered SIGINT cleanup
Daniel Dunbar [Sat, 8 May 2010 02:10:34 +0000 (02:10 +0000)]
Add llvm::sys::RunInterruptHandlers(), which runs the registered SIGINT cleanup
stuff.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103333 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoWhen pruning candidate formulae out of an LSRUse, update the
Dan Gohman [Fri, 7 May 2010 23:36:59 +0000 (23:36 +0000)]
When pruning candidate formulae out of an LSRUse, update the
LSRUse's Regs set after all pruning is done, rather than trying
to do it on the fly, which can produce an incomplete result.

This fixes a case where heuristic pruning was stripping all
formulae from a use, which led the solver to enter an infinite
loop.

Also, add a few asserts to diagnose this kind of situation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103328 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoInstead of just verifying compile unit, verify entire type, variable, namespace etc..
Devang Patel [Fri, 7 May 2010 23:33:41 +0000 (23:33 +0000)]
Instead of just verifying compile unit, verify entire type, variable, namespace etc..

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103327 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRemove DIGlobal.
Devang Patel [Fri, 7 May 2010 23:19:07 +0000 (23:19 +0000)]
Remove DIGlobal.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103325 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRemove. Don't XFAIL.
Bill Wendling [Fri, 7 May 2010 23:09:17 +0000 (23:09 +0000)]
Remove. Don't XFAIL.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103321 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd DINameSpace::Verify().
Devang Patel [Fri, 7 May 2010 23:04:32 +0000 (23:04 +0000)]
Add DINameSpace::Verify().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103318 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoTemorarily revert r101984.
Bill Wendling [Fri, 7 May 2010 22:45:36 +0000 (22:45 +0000)]
Temorarily revert r101984.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103314 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoClang is dying on this with an ambiguous conversion sequence. We're working on it
Douglas Gregor [Fri, 7 May 2010 22:28:25 +0000 (22:28 +0000)]
Clang is dying on this with an ambiguous conversion sequence. We're working on it

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103312 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoSDDbgValues are apparently not being legalized. Fix a symptom of the problem,
Dan Gohman [Fri, 7 May 2010 22:19:08 +0000 (22:19 +0000)]
SDDbgValues are apparently not being legalized. Fix a symptom of the problem,
and not the real problem itself, by dropping debug info for i128 values.
rdar://7958162.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103310 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMinimally fix this code to not abort on mdnodes with integer data
Dan Gohman [Fri, 7 May 2010 22:15:24 +0000 (22:15 +0000)]
Minimally fix this code to not abort on mdnodes with integer data
wider than 64 bits.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103309 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoVerify variable directly.
Devang Patel [Fri, 7 May 2010 22:04:20 +0000 (22:04 +0000)]
Verify variable directly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103305 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoadd COFF support for COMDAT sections, patch by Nathan Jeffords!
Chris Lattner [Fri, 7 May 2010 21:49:09 +0000 (21:49 +0000)]
add COFF support for COMDAT sections, patch by Nathan Jeffords!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103304 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoVerify entire type descriptor not just tag.
Devang Patel [Fri, 7 May 2010 21:45:47 +0000 (21:45 +0000)]
Verify entire type descriptor not just tag.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103303 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix i386 relocations to Weak Definitions. The relocation entries should be
Kevin Enderby [Fri, 7 May 2010 21:44:23 +0000 (21:44 +0000)]
Fix i386 relocations to Weak Definitions.  The relocation entries should be
external and the item to be relocated should not have the address of the
symbol added in.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103302 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoVerify compile unit also.
Devang Patel [Fri, 7 May 2010 21:42:24 +0000 (21:42 +0000)]
Verify compile unit also.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103300 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix PR 7087, and probably other things, by extending
Dale Johannesen [Fri, 7 May 2010 21:35:53 +0000 (21:35 +0000)]
Fix PR 7087, and probably other things, by extending
getConstantFP to accept the two supported long double
target types.  This was not the original intent, but
there are other places that assume this works and it's
easy enough to do.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103299 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoWrap const MDNode * inside DIDescriptor.
Devang Patel [Fri, 7 May 2010 20:54:48 +0000 (20:54 +0000)]
Wrap const MDNode * inside DIDescriptor.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103295 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoUpdate test to use valid debug info.
Devang Patel [Fri, 7 May 2010 20:34:00 +0000 (20:34 +0000)]
Update test to use valid debug info.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103287 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoremove DIDescriptor::getNode()
Devang Patel [Fri, 7 May 2010 18:36:34 +0000 (18:36 +0000)]
remove DIDescriptor::getNode()

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103278 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoClean up the conditional for handling of sign_extend_inreg based on
Jim Grosbach [Fri, 7 May 2010 18:34:55 +0000 (18:34 +0000)]
Clean up the conditional for handling of sign_extend_inreg based on
whether the extract instructions are available.

rdar://7956878

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103277 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoUse overloaded operators instead of DIDescriptor::getNode()
Devang Patel [Fri, 7 May 2010 18:19:32 +0000 (18:19 +0000)]
Use overloaded operators instead of DIDescriptor::getNode()

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103276 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAvoid DIDescriptor::getNode(). Use overloaded operators instead.
Devang Patel [Fri, 7 May 2010 18:11:54 +0000 (18:11 +0000)]
Avoid DIDescriptor::getNode(). Use overloaded operators instead.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103272 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoTesting svn access with a note added to documentation.
Kalle Raiskila [Fri, 7 May 2010 18:06:28 +0000 (18:06 +0000)]
Testing svn access with a note added to documentation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103271 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoUpdate CMake build.
Ted Kremenek [Fri, 7 May 2010 17:29:48 +0000 (17:29 +0000)]
Update CMake build.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103269 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoswitch MCSectionCOFF from a syntactic to semantic representation,
Chris Lattner [Fri, 7 May 2010 17:17:41 +0000 (17:17 +0000)]
switch MCSectionCOFF from a syntactic to semantic representation,
patch by Peter Housel!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103267 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoUpdate CMake build.
Ted Kremenek [Fri, 7 May 2010 17:13:20 +0000 (17:13 +0000)]
Update CMake build.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103266 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoCorrect some bogus target triples.
Duncan Sands [Fri, 7 May 2010 17:03:48 +0000 (17:03 +0000)]
Correct some bogus target triples.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103265 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd some words to this output to indicate what the numbers mean.
Dan Gohman [Fri, 7 May 2010 16:39:27 +0000 (16:39 +0000)]
Add some words to this output to indicate what the numbers mean.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103264 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agodon't pass -f to llc, it doesn't have it anymore. Patch by Kevin Fan (PR7090)
Chris Lattner [Fri, 7 May 2010 16:27:04 +0000 (16:27 +0000)]
don't pass -f to llc, it doesn't have it anymore.  Patch by Kevin Fan (PR7090)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103263 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd a simple module-level debug info printer. It just sets up a
Dan Gohman [Fri, 7 May 2010 16:22:32 +0000 (16:22 +0000)]
Add a simple module-level debug info printer. It just sets up a
DebugInfoFinder and iterates over all the contents calling print.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103262 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix the new print functions to call print instead of dump.
Dan Gohman [Fri, 7 May 2010 16:17:22 +0000 (16:17 +0000)]
Fix the new print functions to call print instead of dump.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103261 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd an LLVM IR version of code sinking. This uses the same simple algorithm
Dan Gohman [Fri, 7 May 2010 15:40:13 +0000 (15:40 +0000)]
Add an LLVM IR version of code sinking. This uses the same simple algorithm
as MachineSink, but it isn't constrained by MachineInstr-level details.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103257 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoConst-ify some stuff.
Dan Gohman [Fri, 7 May 2010 15:36:10 +0000 (15:36 +0000)]
Const-ify some stuff.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103256 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoConvert the DebugInfo classes dump() methods into print(raw_ostream &)
Dan Gohman [Fri, 7 May 2010 15:30:29 +0000 (15:30 +0000)]
Convert the DebugInfo classes dump() methods into print(raw_ostream &)
methods, and add dump functions implemented in terms of the print.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103254 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDocument graphviz passes for the (post) dominator tree.
Tobias Grosser [Fri, 7 May 2010 09:33:18 +0000 (09:33 +0000)]
Document graphviz passes for the (post) dominator tree.

Add documentation for:
  -dot-dom
  -dot-dom-only
  -dot-postdom
  -dot-postdom-only
  -view-dom
  -view-dom-only
  -view-postdom
  -view-postdom-only

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103251 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoUse VLD2q32 / VST2q32 to reload / spill QQ (pair of Q) registers when stack slot...
Evan Cheng [Fri, 7 May 2010 02:04:02 +0000 (02:04 +0000)]
Use VLD2q32 / VST2q32 to reload / spill QQ (pair of Q) registers when stack slot is sufficiently aligned. Use VLDMD / VSTMD otherwise.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103235 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoUse VSTMD / VLDMD for spills and reloads of Q registers instead of VSTMQ / VLDQ....
Evan Cheng [Fri, 7 May 2010 01:54:08 +0000 (01:54 +0000)]
Use VSTMD / VLDMD for spills and reloads of Q registers instead of VSTMQ / VLDQ. The later are aliases which ought to be eliminated but we can't because they are used for storing and loading v2f64 values.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103234 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRevert r103133 and add testcase from PR7066.
Nick Lewycky [Fri, 7 May 2010 01:45:38 +0000 (01:45 +0000)]
Revert r103133 and add testcase from PR7066.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103233 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoWhen rematerializing, use the debug location of the original
Dan Gohman [Fri, 7 May 2010 01:28:10 +0000 (01:28 +0000)]
When rematerializing, use the debug location of the original
instruction, rather than a location near where the new instruction
is being inserted.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103232 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdjust tests affected by llvm-gcc 103229.
Dale Johannesen [Fri, 7 May 2010 01:11:31 +0000 (01:11 +0000)]
Adjust tests affected by llvm-gcc 103229.
All results here match gcc-4.2.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103230 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoTransfer debug location information from PHI nodes to resulting
Dan Gohman [Fri, 7 May 2010 01:10:20 +0000 (01:10 +0000)]
Transfer debug location information from PHI nodes to resulting
lowered copies.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103228 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoPrint debug information for SDNodes.
Dan Gohman [Fri, 7 May 2010 01:09:21 +0000 (01:09 +0000)]
Print debug information for SDNodes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103227 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDisable the new unknown-location code for now. It causes a major
Dan Gohman [Fri, 7 May 2010 01:08:53 +0000 (01:08 +0000)]
Disable the new unknown-location code for now. It causes a major
increase in the debug line info section, and it's causing
regressions in a gdb testsuite.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103226 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRevert r103213. It broke several sections of live website.
mike-m [Fri, 7 May 2010 00:28:04 +0000 (00:28 +0000)]
Revert r103213. It broke several sections of live website.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103219 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRemove VLD1q and VST1q for reloading and spilling Q registers. Just use VLD1q64 ...
Evan Cheng [Fri, 7 May 2010 00:24:52 +0000 (00:24 +0000)]
Remove VLD1q and VST1q for reloading and spilling Q registers. Just use VLD1q64 / VST1q64 and reference sub-registers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103218 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDisable man->postscript and man->pdf doc generation unless explicitly
mike-m [Fri, 7 May 2010 00:13:23 +0000 (00:13 +0000)]
Disable man->postscript and man->pdf doc generation unless explicitly
configured via --enable-doxygen. It seems some systems have broken pdfroff
so automatic use of it is not safe.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103217 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoCleanup unneeded dirs after docs overhaul.
mike-m [Thu, 6 May 2010 23:48:37 +0000 (23:48 +0000)]
Cleanup unneeded dirs after docs overhaul.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103215 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoOverhauled llvm/clang docs builds. Closes PR6613.
mike-m [Thu, 6 May 2010 23:45:43 +0000 (23:45 +0000)]
Overhauled llvm/clang docs builds. Closes PR6613.

NOTE: 2nd part changeset for cfe trunk to follow.

*** PRE-PATCH ISSUES ADDRESSED

- clang api docs fail build from objdir
- clang/llvm api docs collide in install PREFIX/
- clang/llvm main docs collide in install
- clang/llvm main docs have full of hard coded destination
  assumptions and make use of absolute root in static html files;
  namely CommandGuide tools hard codes a website destination
  for cross references and some html cross references assume
  website root paths

*** IMPROVEMENTS

- bumped Doxygen from 1.4.x -> 1.6.3
- splits llvm/clang docs into 'main' and 'api' (doxygen) build trees
- provide consistent, reliable doc builds for both main+api docs
- support buid vs. install vs. website intentions
- support objdir builds
- document targets with 'make help'
- correct clean and uninstall operations
- use recursive dir delete only where absolutely necessary
- added call function fn.RMRF which safeguards against botched 'rm -rf';
  if any target (or any variable is evaluated) which attempts
  to remove any dirs which match a hard-coded 'safelist', a verbose
  error will be printed and make will error-stop.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103213 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMC/X86: X86AbsMemAsmOperand is subclass of X86NoSegMemAsmOperand.
Daniel Dunbar [Thu, 6 May 2010 22:39:14 +0000 (22:39 +0000)]
MC/X86: X86AbsMemAsmOperand is subclass of X86NoSegMemAsmOperand.
 - This fixes "leal 0, %eax", for example.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103205 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agofix rdar://7947167 - llvm-mc doesn't match movsq
Chris Lattner [Thu, 6 May 2010 21:48:14 +0000 (21:48 +0000)]
fix rdar://7947167 - llvm-mc doesn't match movsq

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103199 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoEliminated the classification of control registers into %ecr_
Sean Callanan [Thu, 6 May 2010 20:59:00 +0000 (20:59 +0000)]
Eliminated the classification of control registers into %ecr_
and %rcr_, leaving just %cr_ which is what people expect.
Updated the disassembler to support this unified register set.
Added a testcase to verify that the registers continue to be
decoded correctly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103196 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMC/X86: Error out if we see a non-constant FK_Data_1 or FK_Data_2 fixup, since
Daniel Dunbar [Thu, 6 May 2010 20:34:01 +0000 (20:34 +0000)]
MC/X86: Error out if we see a non-constant FK_Data_1 or FK_Data_2 fixup, since
we don't currently support relaxing them.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103195 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd a DebugLoc argument to TargetInstrInfo::copyRegToReg, so that it
Dan Gohman [Thu, 6 May 2010 20:33:48 +0000 (20:33 +0000)]
Add a DebugLoc argument to TargetInstrInfo::copyRegToReg, so that it
doesn't have to guess.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103194 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd argument TargetRegisterInfo to loadRegFromStackSlot and storeRegToStackSlot.
Evan Cheng [Thu, 6 May 2010 19:06:44 +0000 (19:06 +0000)]
Add argument TargetRegisterInfo to loadRegFromStackSlot and storeRegToStackSlot.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103193 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd a testcase for r103135, explicitly representing unknown
Dan Gohman [Thu, 6 May 2010 17:49:17 +0000 (17:49 +0000)]
Add a testcase for r103135, explicitly representing unknown
locations in debug line info.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103189 91177308-0d34-0410-b5e6-96231b3b80d8

13 years ago80 col violation.
Evan Cheng [Thu, 6 May 2010 16:33:12 +0000 (16:33 +0000)]
80 col violation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103185 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix handling of unreachable blocks in the SSAUpdater. The previous code only
Bob Wilson [Thu, 6 May 2010 16:24:11 +0000 (16:24 +0000)]
Fix handling of unreachable blocks in the SSAUpdater.  The previous code only
handled cases where a block had zero predecessors, but failed to detect other
cases like loops with no entries.  The SSAUpdater is already doing a forward
traversal through the blocks, so it is not hard to identify the blocks that
were never reached on that traversal.  This fixes the crash for ppc on the
stepanov_vector test.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103184 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd a missing break statement to fix unintentional fall-through
Bob Wilson [Thu, 6 May 2010 16:05:26 +0000 (16:05 +0000)]
Add a missing break statement to fix unintentional fall-through
(replacing the previous patch for the same issue).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103183 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix unintentional fallthrough. Patch by Edmund Grimley-Evans <Edmund.Grimley-Evans...
Jim Grosbach [Thu, 6 May 2010 15:32:49 +0000 (15:32 +0000)]
Fix unintentional fallthrough. Patch by Edmund Grimley-Evans <Edmund.Grimley-Evans@arm.com>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103181 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix "warning: extra ';' inside a struct or union" when building llvm with clang
Shantonu Sen [Thu, 6 May 2010 14:57:47 +0000 (14:57 +0000)]
Fix "warning: extra ';' inside a struct or union" when building llvm with clang

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103179 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRevert r103137, fix for $ in labels. It looks like we can't actually handle this
Daniel Dunbar [Thu, 6 May 2010 14:46:38 +0000 (14:46 +0000)]
Revert r103137, fix for $ in labels. It looks like we can't actually handle this
at the token level. Consider the following horrible test case:

  a = 1
  .globl $a
  movl ($a), %eax
  movl $a, %eax
  movl $$a, %eax

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103178 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRe-apply 103156 and 103157. 103156 didn't break anything. 10315 exposed a coalescer...
Evan Cheng [Thu, 6 May 2010 06:36:08 +0000 (06:36 +0000)]
Re-apply 103156 and 103157. 103156 didn't break anything. 10315 exposed a coalescer bug that's fixed by 103170.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103172 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFixes a coalescer bug that caused llc to crash on 2009-11-30-LiveVariablesBug.ll
Evan Cheng [Thu, 6 May 2010 06:23:31 +0000 (06:23 +0000)]
Fixes a coalescer bug that caused llc to crash on 2009-11-30-LiveVariablesBug.ll
with the fix in 103157.

%reg1039:1<def> = VMOVS %S1<kill>, pred:14, pred:%reg0
is not coalescable since none of the super-registers of S1 are in reg1039's
register class: DPR_VFP2. But it is still a legal copy instruction so it should
not assert.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103170 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix some stylistic issues with my last commit.
Sean Hunt [Thu, 6 May 2010 05:24:38 +0000 (05:24 +0000)]
Fix some stylistic issues with my last commit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103164 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRevert r103157, which broke test/CodeGen/ARM/2009-11-30-LiveVariablesBug.ll.
Dan Gohman [Thu, 6 May 2010 05:08:57 +0000 (05:08 +0000)]
Revert r103157, which broke test/CodeGen/ARM/2009-11-30-LiveVariablesBug.ll.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103163 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRevert r103156 since it was breaking the build bots.
Eric Christopher [Thu, 6 May 2010 02:29:06 +0000 (02:29 +0000)]
Revert r103156 since it was breaking the build bots.

   Reverse-merging r103156 into '.':
U    lib/Target/ARM/ARMInstrNEON.td
U    lib/Target/ARM/ARMRegisterInfo.h
U    lib/Target/ARM/ARMBaseRegisterInfo.cpp
U    lib/Target/ARM/ARMBaseInstrInfo.cpp
U    lib/Target/ARM/ARMRegisterInfo.td

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103159 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoHandle the case where open(2) or close(2) is interrupted by a signal when
Dan Gohman [Thu, 6 May 2010 02:06:20 +0000 (02:06 +0000)]
Handle the case where open(2) or close(2) is interrupted by a signal when
automatic syscall restarting is disabled.

Also, fix the build on systems which don't define EWOULDBLOCK.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103158 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix an obvious bug in isMoveInstr. It needs to return sub-register indices.
Evan Cheng [Thu, 6 May 2010 01:54:03 +0000 (01:54 +0000)]
Fix an obvious bug in isMoveInstr. It needs to return sub-register indices.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103157 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdding pseudo 256-bit registers QQ0 . . . QQ7 to represent pairs of Q registers....
Evan Cheng [Thu, 6 May 2010 01:52:03 +0000 (01:52 +0000)]
Adding pseudo 256-bit registers QQ0 . . . QQ7 to represent pairs of Q registers. These will be used to model VLD2 / VST2 instructions in order to get substantially better codegen for them.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103156 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoCosmetic changes.
Evan Cheng [Thu, 6 May 2010 01:34:11 +0000 (01:34 +0000)]
Cosmetic changes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103155 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agostoreRegToStackSlot has forgotten about QPR_8 register class.
Evan Cheng [Thu, 6 May 2010 01:32:54 +0000 (01:32 +0000)]
storeRegToStackSlot has forgotten about QPR_8 register class.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103154 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoHandle EWOULDBLOCK as EAGAIN. And add a comment explaining why
Dan Gohman [Thu, 6 May 2010 01:27:36 +0000 (01:27 +0000)]
Handle EWOULDBLOCK as EAGAIN. And add a comment explaining why
EAGAIN and EWOULDBLOCK are used here.

Also, handle the case where a write call is interrupted after
some data has already been written.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103153 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agomake -filetype=obj default to emitting its output to foo.obj
Chris Lattner [Thu, 6 May 2010 00:54:20 +0000 (00:54 +0000)]
make -filetype=obj default to emitting its output to foo.obj
when on windows instead of foo.o.  Patch by Nathan Jeffords!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103150 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoUpdate LabelsBeforeInsn also, when creating unknown-position labels.
Dan Gohman [Thu, 6 May 2010 00:29:41 +0000 (00:29 +0000)]
Update LabelsBeforeInsn also, when creating unknown-position labels.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103145 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix PR7054 - Assertion `Symbol->isUndefined() && "Cannot define a symbol twice!"...
Chris Lattner [Thu, 6 May 2010 00:05:37 +0000 (00:05 +0000)]
Fix PR7054 - Assertion `Symbol->isUndefined() && "Cannot define a symbol twice!"' failed.

Users can write broken code that emits the same label twice with asm renaming,
detect this and emit a fatal backend error instead of aborting.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103140 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoIn bottom-up mode, defer the materialization of local constant values.
Dan Gohman [Thu, 6 May 2010 00:02:14 +0000 (00:02 +0000)]
In bottom-up mode, defer the materialization of local constant values.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103139 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd an "IsBottomUp" member function to FastISel, which will be used to
Dan Gohman [Wed, 5 May 2010 23:58:35 +0000 (23:58 +0000)]
Add an "IsBottomUp" member function to FastISel, which will be used to
support a new bottom-up mode.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103138 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agofix rdar://7946934 - in some limited cases, the assembler should
Chris Lattner [Wed, 5 May 2010 23:51:28 +0000 (23:51 +0000)]
fix rdar://7946934 - in some limited cases, the assembler should
allow $ at the start of a symbol name.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103137 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoCleanup of ARMv7M support. Move hardware divide and Thumb2 extract/pack
Jim Grosbach [Wed, 5 May 2010 23:44:43 +0000 (23:44 +0000)]
Cleanup of ARMv7M support. Move hardware divide and Thumb2 extract/pack
instructions to subtarget features and update tests to reflect.
PR5717.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103136 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoEmit debug info for MachineInstrs with unknown debug locations, instead
Dan Gohman [Wed, 5 May 2010 23:41:32 +0000 (23:41 +0000)]
Emit debug info for MachineInstrs with unknown debug locations, instead
of just letting them inherit the debug locations of adjacent instructions.

Debug info should aim to be either accurate or absent.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103135 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix some ..'s
Chris Lattner [Wed, 5 May 2010 23:29:09 +0000 (23:29 +0000)]
Fix some ..'s

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103134 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix PR6520. An earlyclobber physreg must not be allocated to anything else.
Jakob Stoklund Olesen [Wed, 5 May 2010 23:07:41 +0000 (23:07 +0000)]
Fix PR6520. An earlyclobber physreg must not be allocated to anything else.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103133 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoTest case for pr2394 and r102979.
Stuart Hastings [Wed, 5 May 2010 22:49:33 +0000 (22:49 +0000)]
Test case for pr2394 and r102979.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103129 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFixed a sign-extension bug in the X86 disassembler
Sean Callanan [Wed, 5 May 2010 22:47:27 +0000 (22:47 +0000)]
Fixed a sign-extension bug in the X86 disassembler
that was causing PC-relative branch targets to be
evaluated incorrectly.  Also added support for
checking operand values to the llvm-mc tester.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103128 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoUse getValue() for PHINodes when direct NodeMap access does not work.
Devang Patel [Wed, 5 May 2010 22:29:00 +0000 (22:29 +0000)]
Use getValue() for PHINodes when direct NodeMap access does not work.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103126 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoSelect an ARM-hosted cross build with a separate makefile target instead of
Bob Wilson [Wed, 5 May 2010 22:22:40 +0000 (22:22 +0000)]
Select an ARM-hosted cross build with a separate makefile target instead of
a magic project name.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103125 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDo not pre-allocate references of D registers pairs if they are extracted from the...
Evan Cheng [Wed, 5 May 2010 22:15:40 +0000 (22:15 +0000)]
Do not pre-allocate references of D registers pairs if they are extracted from the same Q register and are in the right order.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103124 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agofix copy/paste oops.
Jim Grosbach [Wed, 5 May 2010 21:07:46 +0000 (21:07 +0000)]
fix copy/paste oops.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103122 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoNo-ops emitted for scheduling don't correspond with anything in the
Dan Gohman [Wed, 5 May 2010 20:58:01 +0000 (20:58 +0000)]
No-ops emitted for scheduling don't correspond with anything in the
user's source, so don't arbitrarily assign them a debug location.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103121 91177308-0d34-0410-b5e6-96231b3b80d8