Bill Wendling [Thu, 9 Apr 2009 21:49:15 +0000 (21:49 +0000)]
Use a StringMap instead of std::map for storing std::string->DIE* maps. This
gives a micro speedup in the Dwarf writer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68728
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 9 Apr 2009 21:42:11 +0000 (21:42 +0000)]
llvm.dbg.func_start also defines beginning of function scope.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68727
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 9 Apr 2009 18:26:57 +0000 (18:26 +0000)]
Revert r68708. It was causing this failure in the self-hosting buildbot:
llvm[2]: Compiling lto.cpp for Debug build (PIC)
make[2]: *** No rule to make target `/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.sh.build/Debug/lib/libLLVMBitWriter.a', needed by `/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.sh.build/Release/lib/libLTO.dylib'. Stop.
make[1]: *** [all] Error 1
make: *** [all] Error 1
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68721
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Thu, 9 Apr 2009 17:16:43 +0000 (17:16 +0000)]
Fix pr3954. The register scavenger asserts for inline assembly with
register destinations that are tied to source operands. The
TargetInstrDescr::findTiedToSrcOperand method silently fails for inline
assembly. The existing MachineInstr::isRegReDefinedByTwoAddr was very
close to doing what is needed, so this revision makes a few changes to
that method and also renames it to isRegTiedToUseOperand (for consistency
with the very similar isRegTiedToDefOperand and because it handles both
two-address instructions and inline assembly with tied registers).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68714
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjiv Gupta [Thu, 9 Apr 2009 17:06:24 +0000 (17:06 +0000)]
The way we are trying to figure out banksel immediate operand may yield different results for different type of insns. This will eventually need to be changed but currently let us prevent the crash in cases of incorrect detection of banksel operand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68713
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 9 Apr 2009 16:50:43 +0000 (16:50 +0000)]
reg0 references are not real registers. This fixes a crash on the
attached testcase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68712
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Thu, 9 Apr 2009 14:57:00 +0000 (14:57 +0000)]
Make sure to rebuild dependencies for the `check' and `unittests' targets so
we're not testing out-of-date code. This also makes "make check" and
"make unittests" work out-of-the box right after the configure step, without
requiring the user to run "make tools-only" or "make libs-only".
Tested on Linux/x86_64 and Darwin/x86.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68708
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjiv Gupta [Thu, 9 Apr 2009 10:29:32 +0000 (10:29 +0000)]
Arguments to indirect calls were being passed incorrectly. They are not fixed to start after return value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68705
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 9 Apr 2009 06:10:51 +0000 (06:10 +0000)]
Fix code size computation on x86-64, patch by Zoltan Varga!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68690
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 9 Apr 2009 05:56:58 +0000 (05:56 +0000)]
add an accessor method, patch by John McCall!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68684
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjiv Gupta [Thu, 9 Apr 2009 04:03:43 +0000 (04:03 +0000)]
r68576 unconverd a bug in PIC16 port (Thanks to Dan Gohman) where we were custom lowering an ADD to ADDC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68671
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 9 Apr 2009 03:51:29 +0000 (03:51 +0000)]
Generalize ExtendUsesToFormExtLoad to be usable for ANY_EXTEND,
in addition to ZERO_EXTEND and SIGN_EXTEND. Fix a bug in the
way it checked for live-out values, and simplify the way it
find users by using SDNode::use_iterator's (relatively) new
features. Also, make it slightly more permissive on targets
with free truncates.
In SelectionDAGBuild, avoid creating ANY_EXTEND nodes that are
larger than necessary. If the target's SwitchAmountTy has
enough bits, use it. This exposes the truncate to optimization
early, enabling more optimizations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68670
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 9 Apr 2009 03:50:16 +0000 (03:50 +0000)]
Convert TargetRegisterInfo's super-register checking to use a pre-computed hash table just like subregister checking does.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68669
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Thu, 9 Apr 2009 03:10:03 +0000 (03:10 +0000)]
Fix pointer casting problem.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68668
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 9 Apr 2009 02:33:36 +0000 (02:33 +0000)]
Don't copy the operand of a SwitchInst into virtual registers as
eagerly. This helps avoid CopyToReg nodes in some cases where they
aren't needed, and also helps subsequent optimizer heuristics
in cases where the extra nodes would cause the node to appear
to have multiple results. This doesn't have a significant impact
currently; it'll help an upcoming change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68667
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 9 Apr 2009 02:06:09 +0000 (02:06 +0000)]
Fix grammaros in comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68666
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Thu, 9 Apr 2009 00:42:37 +0000 (00:42 +0000)]
Fixed compiler warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68664
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 9 Apr 2009 00:33:08 +0000 (00:33 +0000)]
Add sys::Path::makeAbsolute().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68663
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Wed, 8 Apr 2009 22:26:47 +0000 (22:26 +0000)]
Fix BitstreamReader's GetCurrentBitNo to return the correct bit number, and stop JumpToBit from covering up its mistakes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68648
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 8 Apr 2009 22:18:45 +0000 (22:18 +0000)]
If subprogram type is not tagged as DW_TAG_subroutine_type then use it directly as a return value type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68647
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 8 Apr 2009 21:14:34 +0000 (21:14 +0000)]
Re-apply 68552.
Tested by bootstrapping llvm-gcc and using that to build llvm.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68645
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Wed, 8 Apr 2009 18:00:55 +0000 (18:00 +0000)]
Add testcase for PR3795.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68620
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Wed, 8 Apr 2009 17:55:28 +0000 (17:55 +0000)]
Fix PR3795: Apply Dan's suggested fix for
ARMTargetLowering::isLegalAddressingMode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68619
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 8 Apr 2009 17:28:16 +0000 (17:28 +0000)]
Accommodate empty string for build type. This was previously causing an error
when generating an Xcode project using the CMake files (thanks to Doug Gregor
for identifying the issue).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68618
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Wed, 8 Apr 2009 16:57:40 +0000 (16:57 +0000)]
Use 8 instead of CHAR_BIT
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68616
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 8 Apr 2009 16:20:57 +0000 (16:20 +0000)]
Soft float support for FREM.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68614
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 8 Apr 2009 16:17:23 +0000 (16:17 +0000)]
* Fixed calls to APInt ctor to work for negative values on Darwin/x86
* Converted C-style casts to C++-style casts
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68613
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Wed, 8 Apr 2009 15:18:21 +0000 (15:18 +0000)]
Add BitstreamWriter::GetCurrentBitNo, to report where we are in the output bitstream
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68610
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 8 Apr 2009 13:33:37 +0000 (13:33 +0000)]
Soft float support for undef. Reported by Xerxes Rånby.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68607
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 8 Apr 2009 08:09:33 +0000 (08:09 +0000)]
Avoid a hard coded constant.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68603
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjiv Gupta [Wed, 8 Apr 2009 06:24:04 +0000 (06:24 +0000)]
Emit .line debug directives for stoppoints. The debug location is retrieved by the MachineInstr itself, rather than by custom handling the DBG_STOPPOINT nodes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68602
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 8 Apr 2009 05:41:03 +0000 (05:41 +0000)]
Instcombine should not promote whole computation trees to "strange"
integer types, unless they are already strange. This prevents it from
turning the code produced by SROA into crazy libcalls and stuff that
the code generator can't handle. In the attached example, the result
was an i96 multiply that caused the x86 backend to assert.
Note that if TargetData had an idea of what the legal types are for
a target that this could be used to stop instcombine from introducing
i64 muls, as Scott wanted.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68598
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjiv Gupta [Wed, 8 Apr 2009 05:38:48 +0000 (05:38 +0000)]
Handle indirect function calls.
Every function has the address of its frame in the beginning of code section.
The frame address is retrieved and used to pass arguments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68597
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 8 Apr 2009 04:36:59 +0000 (04:36 +0000)]
disable this code for now, re-breaking PR2975, but fixing
a testcase I'm about to attach to that pr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68592
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 8 Apr 2009 03:43:51 +0000 (03:43 +0000)]
Remove AllowInverse: it leaks memory and is not the right
abstraction for CommandLine.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68588
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 8 Apr 2009 00:54:40 +0000 (00:54 +0000)]
Fully escape the grep string for this test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68580
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 8 Apr 2009 00:51:11 +0000 (00:51 +0000)]
Update this test for recent codegen improvements. CodeGen is now
using an lea in place of a mov and an add for this test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68579
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 8 Apr 2009 00:28:38 +0000 (00:28 +0000)]
change printStringChar to emit characters as unsigned char instead of char,
avoiding sign extension for the top octet. For "negative" chars, we'd print
stuff like:
.asciz "\702...
now we print:
.asciz "\302...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68577
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 8 Apr 2009 00:15:30 +0000 (00:15 +0000)]
Implement support for using modeling implicit-zero-extension on x86-64
with SUBREG_TO_REG, teach SimpleRegisterCoalescing to coalesce
SUBREG_TO_REG instructions (which are similar to INSERT_SUBREG
instructions), and teach the DAGCombiner to take advantage of this on
targets which support it. This eliminates many redundant
zero-extension operations on x86-64.
This adds a new TargetLowering hook, isZExtFree. It's similar to
isTruncateFree, except it only applies to actual definitions, and not
no-op truncates which may not zero the high bits.
Also, this adds a new optimization to SimplifyDemandedBits: transform
operations like x+y into (zext (add (trunc x), (trunc y))) on targets
where all the casts are no-ops. In contexts where the high part of the
add is explicitly masked off, this allows the mask operation to be
eliminated. Fix the DAGCombiner to avoid undoing these transformations
to eliminate casts on targets where the casts are no-ops.
Also, this adds a new two-address lowering heuristic. Since
two-address lowering runs before coalescing, it helps to be able to
look through copies when deciding whether commuting and/or
three-address conversion are profitable.
Also, fix a bug in LiveInterval::MergeInClobberRanges. It didn't handle
the case that a clobber range extended both before and beyond an
existing live range. In that case, multiple live ranges need to be
added. This was exposed by the new subreg coalescing code.
Remove 2008-05-06-SpillerBug.ll. It was bugpoint-reduced, and the
spiller behavior it was looking for no longer occurrs with the new
instruction selection.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68576
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 7 Apr 2009 23:00:04 +0000 (23:00 +0000)]
Revert prev. patch for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68569
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 7 Apr 2009 22:35:25 +0000 (22:35 +0000)]
Temporarily revert r68552. This was causing a failure in the self-hosting LLVM
builds.
--- Reverse-merging (from foreign repository) r68552 into '.':
U test/CodeGen/X86/tls8.ll
U test/CodeGen/X86/tls10.ll
U test/CodeGen/X86/tls2.ll
U test/CodeGen/X86/tls6.ll
U lib/Target/X86/X86Instr64bit.td
U lib/Target/X86/X86InstrSSE.td
U lib/Target/X86/X86InstrInfo.td
U lib/Target/X86/X86RegisterInfo.cpp
U lib/Target/X86/X86ISelLowering.cpp
U lib/Target/X86/X86CodeEmitter.cpp
U lib/Target/X86/X86FastISel.cpp
U lib/Target/X86/X86InstrInfo.h
U lib/Target/X86/X86ISelDAGToDAG.cpp
U lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp
U lib/Target/X86/AsmPrinter/X86IntelAsmPrinter.cpp
U lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.h
U lib/Target/X86/AsmPrinter/X86IntelAsmPrinter.h
U lib/Target/X86/X86ISelLowering.h
U lib/Target/X86/X86InstrInfo.cpp
U lib/Target/X86/X86InstrBuilder.h
U lib/Target/X86/X86RegisterInfo.td
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68560
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 7 Apr 2009 22:27:56 +0000 (22:27 +0000)]
Right now DBG_LABEL are required for llvm.dbg.region_start and llvm.dbg.region_end in non-fast mode also.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68559
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 7 Apr 2009 21:37:46 +0000 (21:37 +0000)]
Reduce code duplication on the TLS implementation.
This introduces a small regression on the generated code
quality in the case we are just computing addresses, not
loading values.
Will work on it and on X86-64 support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68552
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 7 Apr 2009 20:40:11 +0000 (20:40 +0000)]
Don't attempt to handle aggregate argument values in FastISel; let
SelectionDAG do those. This fixes PR3955.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68546
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 7 Apr 2009 20:34:09 +0000 (20:34 +0000)]
PR2985 / <rdar://problem/
6584986>
When compiling in Thumb mode, only the low (R0-R7) registers are available
for most instructions. Breaking the low registers into a new register class
handles this. Uses of R12, SP, etc, are handled explicitly where needed
with copies inserted to move results into low registers where the rest of
the code generator can deal with them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68545
91177308-0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Tue, 7 Apr 2009 20:29:25 +0000 (20:29 +0000)]
Remove ccc now. Radar
6737767
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68544
91177308-0d34-0410-b5e6-
96231b3b80d8
Torok Edwin [Tue, 7 Apr 2009 19:45:59 +0000 (19:45 +0000)]
fix style.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68542
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 7 Apr 2009 18:54:06 +0000 (18:54 +0000)]
Use 'name' instead of 'href'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68534
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 7 Apr 2009 18:52:30 +0000 (18:52 +0000)]
Fix verification failure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68531
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 7 Apr 2009 18:51:13 +0000 (18:51 +0000)]
Offer an explanation of why building LLVM-GCC with objdir == srcdir doesn't
work.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68530
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 7 Apr 2009 18:40:56 +0000 (18:40 +0000)]
Another reformatting. No change in docs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68528
91177308-0d34-0410-b5e6-
96231b3b80d8
Torok Edwin [Tue, 7 Apr 2009 17:23:02 +0000 (17:23 +0000)]
Another attempt at fixing PR2975.
Types can have references to eachother, so we can't just call destroy on them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68523
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 7 Apr 2009 16:30:31 +0000 (16:30 +0000)]
fix comment to reflect the implementation I ended up settling on.
Thanks to Duncan for noticing this
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68518
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 7 Apr 2009 05:03:34 +0000 (05:03 +0000)]
fix rdar://
6762290, a crash compiling cxx filt with clang.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68500
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 7 Apr 2009 02:56:46 +0000 (02:56 +0000)]
Add an API for the bitstream reader to read blobs and return
them by reference, instead of packing each byte into a
smallvector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68486
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 7 Apr 2009 02:55:53 +0000 (02:55 +0000)]
remove empty section
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68485
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 7 Apr 2009 00:26:29 +0000 (00:26 +0000)]
Add svn:ignore properties.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68479
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 6 Apr 2009 22:44:40 +0000 (22:44 +0000)]
stub out code for reading record with blobs as blobs. Not active yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68472
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 6 Apr 2009 22:43:46 +0000 (22:43 +0000)]
allow clients to look up abbrev id's
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68471
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 6 Apr 2009 22:26:26 +0000 (22:26 +0000)]
Add a new EmitRecordWithBlob API that allows a blob to be emitted
without converting each byte to a uint64_t to stick in a SmallVector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68469
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 6 Apr 2009 21:50:39 +0000 (21:50 +0000)]
add a new Blob encoding abbreviation for bitcode files that emits
elements in a form that is efficient for the reader to just get a
pointer in memory and start reading. APIs to do efficient reading
and writing are still todo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68465
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Mon, 6 Apr 2009 21:46:51 +0000 (21:46 +0000)]
Handle 'a' modifier in ARM inline assembly.
Patch by Richard Pennington.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68464
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 6 Apr 2009 21:37:10 +0000 (21:37 +0000)]
split ReadAbbreviatedLiteral out of ReadAbbreviatedField.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68463
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 6 Apr 2009 21:34:58 +0000 (21:34 +0000)]
reduce indentation with early-out
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68462
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 6 Apr 2009 21:20:01 +0000 (21:20 +0000)]
simplify code a bit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68461
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 6 Apr 2009 21:12:29 +0000 (21:12 +0000)]
simplify to reduce indentation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68460
91177308-0d34-0410-b5e6-
96231b3b80d8
Torok Edwin [Mon, 6 Apr 2009 20:57:34 +0000 (20:57 +0000)]
revert r68457, its crashing in make check.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68459
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 6 Apr 2009 20:54:32 +0000 (20:54 +0000)]
Teach llvm-bcanalyzer to skip over the header we use on LLVM IR files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68458
91177308-0d34-0410-b5e6-
96231b3b80d8
Torok Edwin [Mon, 6 Apr 2009 20:49:21 +0000 (20:49 +0000)]
fix (part of) memory leak on shutdown. See PR2975.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68457
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 6 Apr 2009 20:35:19 +0000 (20:35 +0000)]
clean up some html
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68456
91177308-0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Mon, 6 Apr 2009 19:58:11 +0000 (19:58 +0000)]
Avoid -O3 on Darwin for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68455
91177308-0d34-0410-b5e6-
96231b3b80d8
Ed Schouten [Mon, 6 Apr 2009 13:06:48 +0000 (13:06 +0000)]
Let the strcat optimizer return the pointer to the start of the buffer,
instead of the place where it started to perform the string copy.
- PR3661
- Patch by Benjamin Kramer!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68443
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjiv Gupta [Mon, 6 Apr 2009 10:54:50 +0000 (10:54 +0000)]
Map stack based frameindices for spills to zero based indices that can be accessed based on an external symbol defining the location of temporary data for a function. For example: we have spill slots addressed as foo.tmp + 0, foo.tmp + 1 etc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68442
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sun, 5 Apr 2009 12:38:44 +0000 (12:38 +0000)]
Add character encoding declaration to fix verification warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68440
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sun, 5 Apr 2009 12:37:44 +0000 (12:37 +0000)]
Obsessively format this document.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68439
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Sun, 5 Apr 2009 09:07:08 +0000 (09:07 +0000)]
Add segment flag bits to ELF.h.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68438
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sun, 5 Apr 2009 00:44:06 +0000 (00:44 +0000)]
Add character encoding declaration.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68433
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sun, 5 Apr 2009 00:43:04 +0000 (00:43 +0000)]
Fix validation error.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68432
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sun, 5 Apr 2009 00:41:19 +0000 (00:41 +0000)]
A lot of formatting changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68431
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Sat, 4 Apr 2009 22:52:02 +0000 (22:52 +0000)]
CMake: Added notes pointing to the LLVM CMake documentation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68429
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Sat, 4 Apr 2009 22:41:07 +0000 (22:41 +0000)]
CMake: defines and uses macro add_llvm_definitions for keeping track
of compiler parameters explicitly added by the build
specification. This macro replaces the cmake built-in
`add_definitions'.
Detects glibc and defines _GNU_SOURCE accordingly.
Resolves bug 3882.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68428
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sat, 4 Apr 2009 22:36:02 +0000 (22:36 +0000)]
Fix some HTML validation errors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68427
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sat, 4 Apr 2009 22:27:03 +0000 (22:27 +0000)]
General clean-up of the bitcode format documentation. Having the paragraphs
formatted the same, putting words in <tt> tags, adding —s, etc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68426
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sat, 4 Apr 2009 10:24:24 +0000 (10:24 +0000)]
Try SSE2?
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68423
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sat, 4 Apr 2009 09:39:23 +0000 (09:39 +0000)]
CloneModule stores the BasicBlock mapping in ValueMap. There's no need to
recompute it. This fixes a O(n^2) in number of blocks when reducing a crash.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68422
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sat, 4 Apr 2009 07:42:46 +0000 (07:42 +0000)]
Remove bogus include.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68421
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sat, 4 Apr 2009 07:22:01 +0000 (07:22 +0000)]
Add support for embedded metadata to LLVM. This introduces two new types of
Constant, MDString and MDNode which can only be used by globals with a name
that starts with "llvm." or as arguments to a function with the same naming
restriction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68420
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sat, 4 Apr 2009 07:20:43 +0000 (07:20 +0000)]
Fix test on non-x86 platforms.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68419
91177308-0d34-0410-b5e6-
96231b3b80d8
Stefanus Du Toit [Fri, 3 Apr 2009 21:41:52 +0000 (21:41 +0000)]
Test commit access to LLVM with some minor narcissism.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68408
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Fri, 3 Apr 2009 21:08:42 +0000 (21:08 +0000)]
Wrap some lines to fix indentation problems.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68405
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Fri, 3 Apr 2009 20:53:25 +0000 (20:53 +0000)]
Fix some comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68404
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 3 Apr 2009 20:32:13 +0000 (20:32 +0000)]
Duplicate entry.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68401
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 3 Apr 2009 20:25:41 +0000 (20:25 +0000)]
"This adds a getName() method to TargetRegisterClass, just like in TargetRegisterInfo.
This makes debugging register classes a bit easier."
Patch by Jakob Stoklund Olesen!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68400
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 3 Apr 2009 20:23:52 +0000 (20:23 +0000)]
"Add documentation about the fix for missing x86
target library in windows under the "Common problems" section."
Patch by Stefanus Du Toit!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68399
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 3 Apr 2009 20:11:30 +0000 (20:11 +0000)]
Fix a TargetLowering optimization so that it doesn't duplicate
loads when an input node has multiple uses.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68398
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 3 Apr 2009 18:43:17 +0000 (18:43 +0000)]
Add fast path for raw_ostream output of strings.
- Particularly nice for small constant strings, which get optimized
down nicely. On a synthetic benchmark writing out "hello" in a
loop, this is about 2x faster with gcc and 3x faster with
llvm-gcc. llc on insn-attrtab.bc from 403.gcc is about .5% faster.
- I tried for a fancier solution which wouldn't increase code size as
much (by trying to match constant arrays), but can't quite make it
fly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68396
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Fri, 3 Apr 2009 12:16:32 +0000 (12:16 +0000)]
CMake: tools/llvm-config/CMakeLists.txt: Use ! instead of comma as
separator in sed scripts. Resolves Bug 3881.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68385
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Fri, 3 Apr 2009 12:11:43 +0000 (12:11 +0000)]
CMake: removed IA64AsmPrinter.cpp from lib/Target/IA64/CMakeLists.txt
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68384
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Fri, 3 Apr 2009 10:41:41 +0000 (10:41 +0000)]
Separate MIPS asmprinter
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68383
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Fri, 3 Apr 2009 10:41:17 +0000 (10:41 +0000)]
Fix target library name
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68382
91177308-0d34-0410-b5e6-
96231b3b80d8