Rafael Espindola
6d6c6043ea
X86-64 TLS support for local exec and initial exec.
...
llvm-svn: 68947
2009-04-13 13:02:49 +00:00
Sanjiv Gupta
0368bc4703
While passing arg of types larger than char only one byte at lower end was getting passed. We couldn't catch this as we did not have tests that were passing an int value larger than 256.
...
llvm-svn: 68946
2009-04-13 09:38:38 +00:00
Nick Lewycky
e2b8261d87
Fix ocaml bindings; add "available_externally" linkage type.
...
llvm-svn: 68945
2009-04-13 07:02:32 +00:00
Nick Lewycky
8019af6b2c
Fix warning in .ll parser, detect and reject available_externally on function
...
declarations.
llvm-svn: 68944
2009-04-13 07:02:02 +00:00
Chris Lattner
2dba0f0d75
add AvailableExternally linkage to C bindings.
...
llvm-svn: 68942
2009-04-13 06:25:37 +00:00
Chris Lattner
184f1be4a8
Add a new "available_externally" linkage type. This is intended
...
to support C99 inline, GNU extern inline, etc. Related bugzilla's
include PR3517, PR3100, & PR2933. Nothing uses this yet, but it
appears to work.
llvm-svn: 68940
2009-04-13 05:44:34 +00:00
Chris Lattner
836e77d161
eliminate unneeded parens.
...
llvm-svn: 68939
2009-04-13 05:38:23 +00:00
Nick Lewycky
11dc7c1a34
Regenerate.
...
llvm-svn: 68938
2009-04-13 04:26:27 +00:00
Nick Lewycky
e54da991d1
Link against libffi if available, fall back to "no external calls from
...
interpreter mode" when it's not.
llvm-svn: 68937
2009-04-13 04:26:06 +00:00
Nick Lewycky
04adcf153d
Add paragraph tags.
...
llvm-svn: 68934
2009-04-13 02:03:40 +00:00
Chris Lattner
ce8b7d2e24
fix PR3965:SIGINT handler not restored after calling ParseAST(),
...
patch by Alexei Svitkine!
llvm-svn: 68929
2009-04-12 23:33:13 +00:00
Rafael Espindola
7186f20a1b
In X86DAGToDAGISel::MatchWrapper, if base or index are set, avoid matching
...
only if symbolic addresses are RIP relatives.
llvm-svn: 68924
2009-04-12 23:00:38 +00:00
Owen Anderson
deadae28ea
Use a hashtable for TargetRegisterClass::contains.
...
llvm-svn: 68922
2009-04-12 22:31:17 +00:00
Rafael Espindola
6688b0a5da
refactor some code into X86DAGToDAGISel::MatchWrapper
...
llvm-svn: 68915
2009-04-12 21:55:03 +00:00
Nick Lewycky
109af6232b
Add Kaleidoscope to examples/ so that it gets built regularly and we'll notice
...
if an API change causes it to be out of date. The code is copied out of
LangImpl7.html.
llvm-svn: 68912
2009-04-12 20:47:23 +00:00
Nick Lewycky
4ac15cee54
Fix compile error. Pointed out by mait on #llvm IRC!
...
llvm-svn: 68910
2009-04-12 20:15:44 +00:00
Chris Lattner
6cd82fb430
"There was a typo in my previous patch which leads to miscompilation of
...
strncat :(
strncat(foo, "bar", 99)
would be optimized to
memcpy(foo+strlen(foo), "bar", 100, 1)
instead of
memcpy(foo+strlen(foo), "bar", 4, 1)"
Patch by Benjamin Kramer!
llvm-svn: 68905
2009-04-12 18:22:33 +00:00
Rafael Espindola
e4bd8904f7
Add tests for the parts of X86-64 TLS that are already implemented.
...
llvm-svn: 68901
2009-04-12 10:43:41 +00:00
Chris Lattner
ce6bcf0847
fix a cross-block fastisel crash handling overflow intrinsics.
...
See comment for details. This fixes rdar://6772169
llvm-svn: 68890
2009-04-12 07:51:14 +00:00
Chris Lattner
a101f6f8d3
make UpdateValueMap handle the possiblity that we could be
...
copying into the right register, avoiding a copy.
llvm-svn: 68889
2009-04-12 07:46:30 +00:00
Chris Lattner
ada5d6c37e
optimize FastISel::UpdateValueMap to avoid duplicate map lookups,
...
and make it return the assigned register.
llvm-svn: 68888
2009-04-12 07:45:01 +00:00
Chris Lattner
99a8cb627d
simplify code by using IntrinsicInst.
...
llvm-svn: 68887
2009-04-12 07:36:01 +00:00
Chris Lattner
24ac95abc1
Add new TargetInstrDesc::hasImplicitUseOfPhysReg and
...
hasImplicitDefOfPhysReg methods. Use them to remove a
look in X86 fast isel.
llvm-svn: 68886
2009-04-12 07:26:51 +00:00
Chris Lattner
91b6af24ac
add some optimizations for strncpy/strncat and factor some
...
code. Patch by Benjamin Kramer!
llvm-svn: 68885
2009-04-12 05:06:39 +00:00
Dan Gohman
825236b116
Revert r68847. It breaks the build on non-Darwin targets, with this message
...
from the assembler:
Error: unknown pseudo-op: `.debug_inlined'
llvm-svn: 68863
2009-04-11 15:57:04 +00:00
Devang Patel
790e60999e
Keep track of inlined functions and their locations. This information is collected when nested llvm.dbg.func.start intrinsics are seen. (Right now, inliner removes nested llvm.dbg.func.start intrinisics during inlining.)
...
Create debug_inlined dwarf section using these information. This info is used by gdb, at least on Darwin, to enable better experience debugging inlined functions. See DwarfWriter.cpp for more information on structure of debug_inlined section.
llvm-svn: 68847
2009-04-11 00:16:47 +00:00
Chris Lattner
4d59f88e60
move a target-specific test into its directory so it isn't run if you
...
don't configure the ARM target in.
llvm-svn: 68843
2009-04-10 23:58:38 +00:00
Misha Brukman
5e8b8b37a3
Fixed spelling.
...
llvm-svn: 68821
2009-04-10 20:48:27 +00:00
Devang Patel
61b35cd15e
DebugLabelFolder ruthlessly deletes redundant labels. However, sometimes the redundant labels is referenced by debug info somewhere else. This patch provies a way so that dwarf writer can mark labels as used.
...
llvm-svn: 68813
2009-04-10 18:58:59 +00:00
Bob Wilson
f074ca7454
Clean up a bunch of whitespace issues and fix a comment typo.
...
No functional changes.
llvm-svn: 68808
2009-04-10 18:48:47 +00:00
Bill Wendling
e8b48b49c9
Don't install the libLLVMHello.dylib example.
...
llvm-svn: 68807
2009-04-10 18:48:38 +00:00
Bill Wendling
cd1e037c50
Add compatibility_version and current_version flags when creating dylibs.
...
llvm-svn: 68801
2009-04-10 18:20:41 +00:00
Bill Wendling
591854d441
Don't run "dsymutils" on .a files.
...
llvm-svn: 68795
2009-04-10 17:45:16 +00:00
Chris Lattner
30c3de6461
fix two problems with machine sinking:
...
1. Sinking would crash when the first instruction of a block was
sunk due to iterator problems.
2. Instructions could be sunk to their current block, causing an
infinite loop.
This fixes PR3968
llvm-svn: 68787
2009-04-10 16:38:36 +00:00
Dan Gohman
e517ae4211
Now that register classes have names, include the name in debug output.
...
llvm-svn: 68786
2009-04-10 15:59:38 +00:00
Chris Lattner
6758943615
fix a broken assertion in ilist_iterator, which caused it to crash in the
...
bad case instead of actually assert. Bug pointed out by Jakob Stoklund
Olesen!
llvm-svn: 68785
2009-04-10 15:47:17 +00:00
Chris Lattner
4c4453061e
fix typo, patch by Shlomi Fish!
...
llvm-svn: 68784
2009-04-10 15:38:51 +00:00
Sanjiv Gupta
638f400a3c
Added code to handle spilling and reloading of FSRs.
...
llvm-svn: 68783
2009-04-10 15:10:14 +00:00
Rafael Espindola
bb834f0929
Don't fold a load if the other operand is a TLS address.
...
With this we generate
movl %gs:0, %eax
leal i@NTPOFF(%eax), %eax
instead of
movl $i@NTPOFF, %eax
addl %gs:0, %eax
llvm-svn: 68778
2009-04-10 10:09:34 +00:00
Nick Lewycky
beae9f75df
Cleanup. Remove redundant llvm:: , we don't need them since we're inside
...
namespace llvm already.
llvm-svn: 68774
2009-04-10 06:54:06 +00:00
Chris Lattner
bc8848f76f
Add a new Type::getPointerTo method, which is shorthand for
...
llvm::PointerType::get(). Patch by Anders Johnsen!
llvm-svn: 68772
2009-04-10 06:42:02 +00:00
Nick Lewycky
b0001322e0
Add utility function to IRBuilder that takes the difference between two
...
pointers, taking into account the size of the pointed-to object.
Patch by Jeffrey Yasskin!
llvm-svn: 68768
2009-04-10 05:30:48 +00:00
Nick Lewycky
ffb1fdf25b
Regenerate.
...
llvm-svn: 68767
2009-04-10 05:18:27 +00:00
Chris Lattner
428f71623b
a few fixes to "addrspace(256) is reference offset of GS segment register".
...
It turns out that there are still several problems with this, will file a bugzilla.
llvm-svn: 68749
2009-04-10 00:16:23 +00:00
Bill Wendling
992f846dc7
Pass in the std::string parameter instead of returning it by value.
...
llvm-svn: 68747
2009-04-10 00:12:49 +00:00
Bill Wendling
fe56c25065
Constify getter methods.
...
llvm-svn: 68745
2009-04-10 00:00:25 +00:00
Dan Gohman
de912e2475
Remove the obsolete SelectionDAG::getNodeValueTypes and simplify
...
code that uses it by using SelectionDAG::getVTList instead.
llvm-svn: 68744
2009-04-09 23:54:40 +00:00
Dan Gohman
4c56c1c736
Change the NumVTs field from short to int, since there's no
...
real need for it to be short.
llvm-svn: 68742
2009-04-09 23:53:31 +00:00
Bill Wendling
16abfc97fb
StringMap<DIE*>::iterator::first() returns a pointer to the first character of
...
the key. This will cause it to create a new std::string, which isn't
wanted. Instead, pass back the "const char*". Modify the EmitString() method to
take a "const char*".
llvm-svn: 68741
2009-04-09 23:51:31 +00:00
Devang Patel
a68bdef482
Silence unused variable warning.
...
llvm-svn: 68735
2009-04-09 23:45:17 +00:00
Chris Lattner
66ab904f5a
ignore register zero in isRegTiedToUseOperand, following the example of
...
isRegTiedToDefOperand. Thanks to Bob for pointing this out!
llvm-svn: 68734
2009-04-09 23:33:34 +00:00
Owen Anderson
5eb8d26f19
Give register alias checking the hash table treatment too.
...
llvm-svn: 68730
2009-04-09 22:19:30 +00:00
Bill Wendling
e65fd1a302
Use a StringMap instead of std::map for storing std::string->DIE* maps. This
...
gives a micro speedup in the Dwarf writer.
llvm-svn: 68728
2009-04-09 21:49:15 +00:00
Devang Patel
a2c2b85df4
llvm.dbg.func_start also defines beginning of function scope.
...
llvm-svn: 68727
2009-04-09 21:42:11 +00:00
Bill Wendling
f704f90f6e
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
llvm-svn: 68721
2009-04-09 18:26:57 +00:00
Bob Wilson
51856173c8
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).
llvm-svn: 68714
2009-04-09 17:16:43 +00:00
Sanjiv Gupta
38533d48dd
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.
...
llvm-svn: 68713
2009-04-09 17:06:24 +00:00
Chris Lattner
a725028d41
reg0 references are not real registers. This fixes a crash on the
...
attached testcase.
llvm-svn: 68712
2009-04-09 16:50:43 +00:00
Misha Brukman
a04ede8d5b
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.
llvm-svn: 68708
2009-04-09 14:57:00 +00:00
Sanjiv Gupta
60fd2cd503
Arguments to indirect calls were being passed incorrectly. They are not fixed to start after return value.
...
llvm-svn: 68705
2009-04-09 10:29:32 +00:00
Chris Lattner
bcd2632638
Fix code size computation on x86-64, patch by Zoltan Varga!
...
llvm-svn: 68690
2009-04-09 06:10:51 +00:00
Chris Lattner
fc8b2b9ff9
add an accessor method, patch by John McCall!
...
llvm-svn: 68684
2009-04-09 05:56:58 +00:00
Sanjiv Gupta
cdfdc79b70
r68576 unconverd a bug in PIC16 port (Thanks to Dan Gohman) where we were custom lowering an ADD to ADDC.
...
llvm-svn: 68671
2009-04-09 04:03:43 +00:00
Dan Gohman
0e8d199f91
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.
llvm-svn: 68670
2009-04-09 03:51:29 +00:00
Owen Anderson
3a888f639e
Convert TargetRegisterInfo's super-register checking to use a pre-computed hash table just like subregister checking does.
...
llvm-svn: 68669
2009-04-09 03:50:16 +00:00
Nick Lewycky
8b4db2da2b
Fix pointer casting problem.
...
llvm-svn: 68668
2009-04-09 03:10:03 +00:00
Dan Gohman
e6db8ca5eb
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.
llvm-svn: 68667
2009-04-09 02:33:36 +00:00
Dan Gohman
f15454866c
Fix grammaros in comments.
...
llvm-svn: 68666
2009-04-09 02:06:09 +00:00
Misha Brukman
f02d62deeb
Fixed compiler warning.
...
llvm-svn: 68664
2009-04-09 00:42:37 +00:00
Daniel Dunbar
3f48987069
Add sys::Path::makeAbsolute().
...
llvm-svn: 68663
2009-04-09 00:33:08 +00:00
Douglas Gregor
912fa42dd9
Fix BitstreamReader's GetCurrentBitNo to return the correct bit number, and stop JumpToBit from covering up its mistakes
...
llvm-svn: 68648
2009-04-08 22:26:47 +00:00
Devang Patel
3396d7ef9d
If subprogram type is not tagged as DW_TAG_subroutine_type then use it directly as a return value type.
...
llvm-svn: 68647
2009-04-08 22:18:45 +00:00
Rafael Espindola
3b2df10c9e
Re-apply 68552.
...
Tested by bootstrapping llvm-gcc and using that to build llvm.
llvm-svn: 68645
2009-04-08 21:14:34 +00:00
Bob Wilson
8462791237
Add testcase for PR3795.
...
llvm-svn: 68620
2009-04-08 18:00:55 +00:00
Bob Wilson
866c174f79
Fix PR3795: Apply Dan's suggested fix for
...
ARMTargetLowering::isLegalAddressingMode.
llvm-svn: 68619
2009-04-08 17:55:28 +00:00
Ted Kremenek
b58a9058a2
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).
llvm-svn: 68618
2009-04-08 17:28:16 +00:00
Douglas Gregor
3da1d240ff
Use 8 instead of CHAR_BIT
...
llvm-svn: 68616
2009-04-08 16:57:40 +00:00
Duncan Sands
5a82613db0
Soft float support for FREM.
...
llvm-svn: 68614
2009-04-08 16:20:57 +00:00
Misha Brukman
680336d12f
* Fixed calls to APInt ctor to work for negative values on Darwin/x86
...
* Converted C-style casts to C++-style casts
llvm-svn: 68613
2009-04-08 16:17:23 +00:00
Douglas Gregor
006dfc8a9f
Add BitstreamWriter::GetCurrentBitNo, to report where we are in the output bitstream
...
llvm-svn: 68610
2009-04-08 15:18:21 +00:00
Duncan Sands
fb438caac6
Soft float support for undef. Reported by Xerxes Rånby.
...
llvm-svn: 68607
2009-04-08 13:33:37 +00:00
Rafael Espindola
d173f4237d
Avoid a hard coded constant.
...
llvm-svn: 68603
2009-04-08 08:09:33 +00:00
Sanjiv Gupta
44ea053a49
Emit .line debug directives for stoppoints. The debug location is retrieved by the MachineInstr itself, rather than by custom handling the DBG_STOPPOINT nodes.
...
llvm-svn: 68602
2009-04-08 06:24:04 +00:00
Chris Lattner
eb510d6b3d
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.
llvm-svn: 68598
2009-04-08 05:41:03 +00:00
Sanjiv Gupta
4b489c75c2
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.
llvm-svn: 68597
2009-04-08 05:38:48 +00:00
Chris Lattner
a72576e92b
disable this code for now, re-breaking PR2975, but fixing
...
a testcase I'm about to attach to that pr.
llvm-svn: 68592
2009-04-08 04:36:59 +00:00
Chris Lattner
3875195865
Remove AllowInverse: it leaks memory and is not the right
...
abstraction for CommandLine.
llvm-svn: 68588
2009-04-08 03:43:51 +00:00
Dan Gohman
9e7a137d01
Fully escape the grep string for this test.
...
llvm-svn: 68580
2009-04-08 00:54:40 +00:00
Dan Gohman
bb4ff96e89
Update this test for recent codegen improvements. CodeGen is now
...
using an lea in place of a mov and an add for this test.
llvm-svn: 68579
2009-04-08 00:51:11 +00:00
Chris Lattner
69b586e547
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...
llvm-svn: 68577
2009-04-08 00:28:38 +00:00
Dan Gohman
ad3e549a53
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.
llvm-svn: 68576
2009-04-08 00:15:30 +00:00
Devang Patel
10f7c3deb7
Revert prev. patch for now.
...
llvm-svn: 68569
2009-04-07 23:00:04 +00:00
Bill Wendling
4aa25b79f9
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
llvm-svn: 68560
2009-04-07 22:35:25 +00:00
Devang Patel
ddafc03e41
Right now DBG_LABEL are required for llvm.dbg.region_start and llvm.dbg.region_end in non-fast mode also.
...
llvm-svn: 68559
2009-04-07 22:27:56 +00:00
Rafael Espindola
1edda06792
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.
llvm-svn: 68552
2009-04-07 21:37:46 +00:00
Dan Gohman
ca93aabeba
Don't attempt to handle aggregate argument values in FastISel; let
...
SelectionDAG do those. This fixes PR3955.
llvm-svn: 68546
2009-04-07 20:40:11 +00:00
Jim Grosbach
fde2110aa9
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.
llvm-svn: 68545
2009-04-07 20:34:09 +00:00
Mike Stump
986991fd28
Remove ccc now. Radar 6737767
...
llvm-svn: 68544
2009-04-07 20:29:25 +00:00
Torok Edwin
671eb8b7bb
fix style.
...
llvm-svn: 68542
2009-04-07 19:45:59 +00:00
Bill Wendling
b01824afb5
Use 'name' instead of 'href'.
...
llvm-svn: 68534
2009-04-07 18:54:06 +00:00
Bill Wendling
ebb4486a84
Fix verification failure.
...
llvm-svn: 68531
2009-04-07 18:52:30 +00:00
Bill Wendling
bf448a1010
Offer an explanation of why building LLVM-GCC with objdir == srcdir doesn't
...
work.
llvm-svn: 68530
2009-04-07 18:51:13 +00:00
Bill Wendling
1ae487bad5
Another reformatting. No change in docs.
...
llvm-svn: 68528
2009-04-07 18:40:56 +00:00
Torok Edwin
73312b3f39
Another attempt at fixing PR2975.
...
Types can have references to eachother, so we can't just call destroy on them.
llvm-svn: 68523
2009-04-07 17:23:02 +00:00
Chris Lattner
d805e262cb
fix comment to reflect the implementation I ended up settling on.
...
Thanks to Duncan for noticing this
llvm-svn: 68518
2009-04-07 16:30:31 +00:00
Chris Lattner
321741af5f
fix rdar://6762290, a crash compiling cxx filt with clang.
...
llvm-svn: 68500
2009-04-07 05:03:34 +00:00
Chris Lattner
73ab815c27
Add an API for the bitstream reader to read blobs and return
...
them by reference, instead of packing each byte into a
smallvector.
llvm-svn: 68486
2009-04-07 02:56:46 +00:00
Chris Lattner
47d6e7b93e
remove empty section
...
llvm-svn: 68485
2009-04-07 02:55:53 +00:00
Chris Lattner
2ed6a20934
stub out code for reading record with blobs as blobs. Not active yet.
...
llvm-svn: 68472
2009-04-06 22:44:40 +00:00
Chris Lattner
691c10a45b
allow clients to look up abbrev id's
...
llvm-svn: 68471
2009-04-06 22:43:46 +00:00
Chris Lattner
1df12baca9
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.
llvm-svn: 68469
2009-04-06 22:26:26 +00:00
Chris Lattner
4bda28e765
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.
llvm-svn: 68465
2009-04-06 21:50:39 +00:00
Bob Wilson
0669f6d295
Handle 'a' modifier in ARM inline assembly.
...
Patch by Richard Pennington.
llvm-svn: 68464
2009-04-06 21:46:51 +00:00
Chris Lattner
13195e0718
split ReadAbbreviatedLiteral out of ReadAbbreviatedField.
...
llvm-svn: 68463
2009-04-06 21:37:10 +00:00
Chris Lattner
15b6b3bae7
reduce indentation with early-out
...
llvm-svn: 68462
2009-04-06 21:34:58 +00:00
Chris Lattner
6a2d8070bd
simplify code a bit.
...
llvm-svn: 68461
2009-04-06 21:20:01 +00:00
Chris Lattner
4918f64413
simplify to reduce indentation.
...
llvm-svn: 68460
2009-04-06 21:12:29 +00:00
Torok Edwin
839026562c
revert r68457, its crashing in make check.
...
llvm-svn: 68459
2009-04-06 20:57:34 +00:00
Chris Lattner
b9e07fd297
Teach llvm-bcanalyzer to skip over the header we use on LLVM IR files.
...
llvm-svn: 68458
2009-04-06 20:54:32 +00:00
Torok Edwin
96dadc3b63
fix (part of) memory leak on shutdown. See PR2975.
...
llvm-svn: 68457
2009-04-06 20:49:21 +00:00
Chris Lattner
28e2cd8090
clean up some html
...
llvm-svn: 68456
2009-04-06 20:35:19 +00:00
Mike Stump
82d7cfda21
Avoid -O3 on Darwin for now.
...
llvm-svn: 68455
2009-04-06 19:58:11 +00:00
Ed Schouten
01aa6ec97a
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!
llvm-svn: 68443
2009-04-06 13:06:48 +00:00
Sanjiv Gupta
0b08df8c09
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.
...
llvm-svn: 68442
2009-04-06 10:54:50 +00:00
Bill Wendling
d231f8a592
Add character encoding declaration to fix verification warning.
...
llvm-svn: 68440
2009-04-05 12:38:44 +00:00
Bill Wendling
b95325c543
Obsessively format this document.
...
llvm-svn: 68439
2009-04-05 12:37:44 +00:00
Mikhail Glushenkov
b5fe65091d
Add segment flag bits to ELF.h.
...
llvm-svn: 68438
2009-04-05 09:07:08 +00:00
Bill Wendling
b4d7102417
Add character encoding declaration.
...
llvm-svn: 68433
2009-04-05 00:44:06 +00:00
Bill Wendling
9216ac0bcc
Fix validation error.
...
llvm-svn: 68432
2009-04-05 00:43:04 +00:00
Bill Wendling
b38e198f02
A lot of formatting changes.
...
llvm-svn: 68431
2009-04-05 00:41:19 +00:00
Oscar Fuentes
fff33a3cdf
CMake: Added notes pointing to the LLVM CMake documentation.
...
llvm-svn: 68429
2009-04-04 22:52:02 +00:00
Oscar Fuentes
bda403b4c8
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.
llvm-svn: 68428
2009-04-04 22:41:07 +00:00
Bill Wendling
3b779984b4
Fix some HTML validation errors.
...
llvm-svn: 68427
2009-04-04 22:36:02 +00:00
Bill Wendling
e1a070b6e3
General clean-up of the bitcode format documentation. Having the paragraphs
...
formatted the same, putting words in <tt> tags, adding —s, etc.
llvm-svn: 68426
2009-04-04 22:27:03 +00:00
Nick Lewycky
4717538b1c
Try SSE2?
...
llvm-svn: 68423
2009-04-04 10:24:24 +00:00
Nick Lewycky
b294e31e83
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.
llvm-svn: 68422
2009-04-04 09:39:23 +00:00
Nick Lewycky
0bb65f44fa
Remove bogus include.
...
llvm-svn: 68421
2009-04-04 07:42:46 +00:00
Nick Lewycky
49f891958f
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.
llvm-svn: 68420
2009-04-04 07:22:01 +00:00
Nick Lewycky
734dee287d
Fix test on non-x86 platforms.
...
llvm-svn: 68419
2009-04-04 07:20:43 +00:00
Stefanus Du Toit
6c7917a844
Test commit access to LLVM with some minor narcissism.
...
llvm-svn: 68408
2009-04-03 21:41:52 +00:00
Bob Wilson
6bedd59894
Wrap some lines to fix indentation problems.
...
llvm-svn: 68405
2009-04-03 21:08:42 +00:00
Bob Wilson
d24b794f31
Fix some comments.
...
llvm-svn: 68404
2009-04-03 20:53:25 +00:00
Bill Wendling
184064484b
Duplicate entry.
...
llvm-svn: 68401
2009-04-03 20:32:13 +00:00
Chris Lattner
3a88fa0ff8
"This adds a getName() method to TargetRegisterClass, just like in TargetRegisterInfo.
...
This makes debugging register classes a bit easier."
Patch by Jakob Stoklund Olesen!
llvm-svn: 68400
2009-04-03 20:25:41 +00:00
Chris Lattner
eaa52bc29b
"Add documentation about the fix for missing x86
...
target library in windows under the "Common problems" section."
Patch by Stefanus Du Toit!
llvm-svn: 68399
2009-04-03 20:23:52 +00:00
Dan Gohman
8bff8a1e87
Fix a TargetLowering optimization so that it doesn't duplicate
...
loads when an input node has multiple uses.
llvm-svn: 68398
2009-04-03 20:11:30 +00:00
Daniel Dunbar
99c54d7fb0
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.
llvm-svn: 68396
2009-04-03 18:43:17 +00:00
Oscar Fuentes
cf03f4b041
CMake: tools/llvm-config/CMakeLists.txt: Use ! instead of comma as
...
separator in sed scripts. Resolves Bug 3881.
llvm-svn: 68385
2009-04-03 12:16:32 +00:00
Oscar Fuentes
f4de47b91e
CMake: removed IA64AsmPrinter.cpp from lib/Target/IA64/CMakeLists.txt
...
llvm-svn: 68384
2009-04-03 12:11:43 +00:00
Anton Korobeynikov
06d2d8ba72
Separate MIPS asmprinter
...
llvm-svn: 68383
2009-04-03 10:41:41 +00:00
Anton Korobeynikov
354171f060
Fix target library name
...
llvm-svn: 68382
2009-04-03 10:41:17 +00:00
Anton Korobeynikov
b1cce77929
Fix comment
...
llvm-svn: 68381
2009-04-03 10:41:00 +00:00
Anton Korobeynikov
547b43a809
Move IA64 asmprinter to separate library
...
llvm-svn: 68380
2009-04-03 10:38:51 +00:00
Mon P Wang
9c186c5d27
Added a x86 dag combine to increase the chances to use a
...
movq for v2i64 on x86-32.
llvm-svn: 68368
2009-04-03 02:43:30 +00:00
Chris Lattner
0fc36ca69d
update some syntax
...
llvm-svn: 68362
2009-04-03 00:29:19 +00:00
Chris Lattner
ce32794bf2
Work around an apparent GCC miscompilation by specializing different,
...
this fixes a regression on some compilers from r68147.
llvm-svn: 68356
2009-04-03 00:26:01 +00:00
Dan Gohman
b425feb2aa
Delete ISD::INSERT_SUBREG and ISD::EXTRACT_SUBREG, which are unused.
...
Note that these are distinct from TargetInstrInfo::INSERT_SUBREG
and TargetInstrInfo::EXTRACT_SUBREG, which are used.
llvm-svn: 68355
2009-04-03 00:25:26 +00:00
Chris Lattner
caf534cfcf
correct patch
...
llvm-svn: 68353
2009-04-03 00:10:56 +00:00
Chris Lattner
8185fe521c
add patch to go along with r68350
...
llvm-svn: 68352
2009-04-03 00:10:31 +00:00
Chris Lattner
206f75e7d2
use higher level APIs.
...
llvm-svn: 68351
2009-04-03 00:02:39 +00:00
Chris Lattner
ddb2e9f7f7
add missing *
...
llvm-svn: 68350
2009-04-02 23:53:03 +00:00
Sanjiv Gupta
e9cff3328f
Fixed build warnings.
...
llvm-svn: 68333
2009-04-02 18:33:12 +00:00
Sanjiv Gupta
cc841a3810
To convert the StopPoint insn into an assembler directive by ISel, we need to have access to the line number field. So we convert that info as an operand by custom handling DBG_STOPPOINT in legalize.
...
llvm-svn: 68329
2009-04-02 18:03:10 +00:00
Sanjiv Gupta
1e8860a8f5
Params are not being generated as static globals now. The caller passes them onto the callee's stack directly and the callee loads the argvals from its own stack. Clang generated frameindexes validatd by recalculating the stack as if all frameindexes represent 1-byte slots.
...
llvm-svn: 68327
2009-04-02 17:42:00 +00:00
Chris Lattner
720683752e
fix overflow checks in SmallVector:
...
"The code was doing "if (End+NumInputs > Capacity) ...". If End is
close to 0xFFFFFFFF and NumInputs is large, it'll overflow, the
condition will come out false, and the vector won't grow to
accommodate the new elements, and the program will crash in memmove."
Patch by Jeffrey Yasskin!
llvm-svn: 68277
2009-04-02 03:06:26 +00:00
Mikhail Glushenkov
12062ba83d
Fix build on Linux.
...
llvm-svn: 68269
2009-04-02 01:11:37 +00:00
Owen Anderson
98f912bf13
Reapply r68211, with the miscompilations it caused fixed.
...
llvm-svn: 68262
2009-04-01 23:53:49 +00:00
Bill Wendling
66b3fffa60
Make the constants fit.
...
llvm-svn: 68258
2009-04-01 22:44:18 +00:00
Devang Patel
ec9c58f7e5
Clean up pass manager cache after each run.
...
llvm-svn: 68254
2009-04-01 22:34:41 +00:00
Chris Lattner
d2eb0a63a1
silence warning in release-asserts build.
...
llvm-svn: 68253
2009-04-01 22:14:45 +00:00
Daniel Dunbar
4abd56677d
Add llvm::Triple class for abstracting access to target triples.
...
- The code is silly, I'm just amusing myself. Rewrite to be efficient
if you like. :)
Also, if you wish to debate the proper names of the triple components
I'm all ears.
llvm-svn: 68252
2009-04-01 21:53:23 +00:00
Misha Brukman
7182686dbf
Fixed file header comment.
...
llvm-svn: 68250
2009-04-01 21:37:19 +00:00
Misha Brukman
1757a810ce
Added tests for math utility functions; fixed another test's header comment.
...
llvm-svn: 68249
2009-04-01 21:36:40 +00:00
Misha Brukman
cb943df724
Fixed spelling.
...
llvm-svn: 68248
2009-04-01 21:33:08 +00:00
Devang Patel
e2ff483afd
Remove dead code.
...
llvm-svn: 68246
2009-04-01 21:27:08 +00:00
Chris Lattner
d978cc5c63
add this to SVN to allow collaborative hacking.
...
llvm-svn: 68243
2009-04-01 21:11:04 +00:00
Chris Lattner
807a0f207d
Add range insert method for DenseSet and define DenseMapInfo for chars.
...
Patch by Kevin Fan!
llvm-svn: 68239
2009-04-01 19:50:49 +00:00
Evan Cheng
856e339241
Recognize arm triplets.
...
llvm-svn: 68229
2009-04-01 18:54:56 +00:00
Dan Gohman
cff6953c45
Use CHAR_BIT instead of hard-coding 8 in several places where it
...
is appropriate. This helps visually differentiate host-oriented
calculations from target-oriented calculations.
llvm-svn: 68227
2009-04-01 18:45:54 +00:00
Ted Kremenek
061cf25072
Constify method to make VC++ happy. Patch by Brian Diekelman!
...
llvm-svn: 68222
2009-04-01 18:24:22 +00:00
Dan Gohman
0170402fe8
Use LLVM type names instead of C type names in comments, to be
...
less ambiguous and less C-specific.
llvm-svn: 68219
2009-04-01 18:10:16 +00:00
Bob Wilson
cf1ec2cc68
Fix PR3862: Recognize some ARM-specific constraints for immediates in inline
...
assembly.
llvm-svn: 68218
2009-04-01 17:58:54 +00:00
Dan Gohman
c4971721ea
Revert r68172. It caused regressions in
...
Applications/Burg/burg
Applications/ClamAV/clamscan
and many other tests.
llvm-svn: 68211
2009-04-01 16:37:47 +00:00
Misha Brukman
23fe17f55b
Fixed spelling.
...
llvm-svn: 68209
2009-04-01 16:13:29 +00:00
Ted Kremenek
d28577651e
CMake: Have generated Xcode projects also contain the LLVM header files.
...
llvm-svn: 68206
2009-04-01 15:40:21 +00:00
Nick Lewycky
9a196c0119
Detect that we're building from a git checkout like we do for cvs and svn.
...
Based on a patch by Nicolas Trangez on the unladen-swallow mailing list!
llvm-svn: 68187
2009-04-01 04:39:25 +00:00
Chris Lattner
7e06443d44
hopefully fix an apparent build error on windows.
...
llvm-svn: 68175
2009-04-01 02:03:38 +00:00
Chris Lattner
647cffba61
fix a serious regression I introduced in my previous patch.
...
llvm-svn: 68173
2009-04-01 01:43:03 +00:00
Owen Anderson
ff5961b46c
Enhance GVN to propagate simple conditionals. This fixes PR3921.
...
llvm-svn: 68172
2009-04-01 01:20:45 +00:00
Misha Brukman
7f1f0b03e2
include Makefile.common before using $(BuildMode) to get its definition
...
llvm-svn: 68167
2009-04-01 00:35:00 +00:00
Misha Brukman
5fc1a0339c
* Fixed spelling of `invertible'
...
* Simplified if statement
llvm-svn: 68163
2009-04-01 00:15:46 +00:00
Douglas Gregor
a9d1032f9c
Allow the use of pointers to const within PointerUnion.
...
llvm-svn: 68159
2009-03-31 23:19:54 +00:00
Chris Lattner
169b2f191d
add a converting operator
...
llvm-svn: 68158
2009-03-31 23:09:51 +00:00
Chris Lattner
2d8cd80ee0
reimplement BitcodeReaderValueList in terms of WeakVH instead of making
...
it be an LLVM IR User object.
llvm-svn: 68156
2009-03-31 22:55:09 +00:00
Chris Lattner
f72ce6ea8b
Make the key of ValueRankMap an AssertingVH, so that we die violently
...
if it dangles.
llvm-svn: 68150
2009-03-31 22:13:29 +00:00
Chris Lattner
90234f34c6
Add two new classes: WeakVH and AssertingVH. These are both "ValueHandles",
...
which are effectively smart pointers to Value*'s. They are both very light
weight and simple, and react to values being destroyed or being RAUW'd.
WeakVN does a best effort to follow a value around, including through RAUW
operations and will get nulled out of the value is destroyed. This is useful
for the eventual "metadata that references a value" work, because it is a
reference to a value that does not show up on its use_* list.
AssertingVH is a pointer that compiles down to a dumb raw pointer when
assertions are disabled. When enabled, it emits an assertion if the
pointed-to value is destroyed while it is still being referenced. This
is very useful for Maps and other things, and should have caught the recent
bugs in CallGraph and Reassociate, for example.
llvm-svn: 68149
2009-03-31 22:11:05 +00:00
Chris Lattner
e756f15703
teach PointerLikeTypeTraits that all pointers to pointers may only be 4-byte aligned.
...
llvm-svn: 68147
2009-03-31 21:28:39 +00:00
Chris Lattner
e0d25e42e9
add some accessors so I can play games with DenseMaps.
...
llvm-svn: 68145
2009-03-31 20:57:23 +00:00
Evan Cheng
826b6f0f7c
Throttle back "fold select into operand" transformation. InstCombine should not generate selects of two constants unless they are selects of 0 and 1.
...
e.g.
define i32 @t1(i32 %c, i32 %x) nounwind {
%t1 = icmp eq i32 %c, 0
%t2 = lshr i32 %x, 18
%t3 = select i1 %t1, i32 %t2, i32 %x
ret i32 %t3
}
was turned into
define i32 @t2(i32 %c, i32 %x) nounwind {
%t1 = icmp eq i32 %c, 0
%t2 = select i1 %t1, i32 18, i32 0
%t3 = lshr i32 %x, %t2
ret i32 %t3
}
For most targets, that means materializing two constants and then a select. e.g. On x86-64
movl %esi, %eax
shrl $18, %eax
testl %edi, %edi
cmovne %esi, %eax
ret
=>
xorl %eax, %eax
testl %edi, %edi
movl $18, %ecx
cmovne %eax, %ecx
movl %esi, %eax
shrl %cl, %eax
ret
Also, the optimizer and codegen can reason about shl / and / add, etc. by a constant. This optimization will hinder optimizations using ComputeMaskedBits.
llvm-svn: 68142
2009-03-31 20:42:45 +00:00
Evan Cheng
0d551591ea
Fully general expansion of integer shift of any size.
...
llvm-svn: 68134
2009-03-31 19:39:24 +00:00
Evan Cheng
d9d6e427d6
i128 shift libcalls are not available on x86.
...
llvm-svn: 68133
2009-03-31 19:38:51 +00:00
Dan Gohman
6b42dfddf4
Reapply 68073, with fixes. EH Landing-pad basic blocks are not
...
entered via fall-through. Don't miss fallthroughs from blocks
terminated by conditional branches. Also, move
isOnlyReachableByFallthrough out of line.
llvm-svn: 68129
2009-03-31 18:39:13 +00:00
Mikhail Glushenkov
eccc5967bf
Do not pass '-relocation-model=pic' to llc.
...
Does not work well on 32 bit targets. Bug reported by Albert Graef.
This patch also adds new "-Wllc,option" syntax to pass options to llc.
llvm-svn: 68127
2009-03-31 18:33:54 +00:00
Douglas Gregor
1d249d984c
Stop guessing, start thinking, and make PointerUnion3::is actually be correct.
...
llvm-svn: 68126
2009-03-31 18:31:03 +00:00
Dan Gohman
6161b3ccf6
Add an explicit -asm-verbose to these tests, to make it
...
possible to run the tests with -asm-verbose defaulting
to false.
llvm-svn: 68124
2009-03-31 18:20:47 +00:00
Devang Patel
4ce6e69022
Update call graph after inlining invoke.
...
Patch by Jay Foad.
llvm-svn: 68120
2009-03-31 17:36:12 +00:00
Daniel Dunbar
fb1a6eb69b
Add llvm::sys::getHostTriple and remove
...
llvm::sys::getOS{Name,Version}.
Right now the implementation just derives from LLVM_HOSTTRIPLE (which
is wrong, but it doesn't look like we have a define for the target
triple). Ideally this routine would actually be able to compute the
triple for targets we care about.
llvm-svn: 68118
2009-03-31 17:30:15 +00:00
Dan Gohman
d51f196ff5
Minor top-level comment fix.
...
llvm-svn: 68113
2009-03-31 16:51:18 +00:00
Dan Gohman
90ea62cba6
Tidy up some comments.
...
llvm-svn: 68112
2009-03-31 16:48:35 +00:00
Dan Gohman
0837aa99ea
Add a comment.
...
llvm-svn: 68111
2009-03-31 16:46:45 +00:00
Rafael Espindola
9277379fc0
remove unused arguments.
...
llvm-svn: 68109
2009-03-31 16:16:57 +00:00
Bill Wendling
6afae239c2
Really temporarily revert r68073.
...
llvm-svn: 68100
2009-03-31 08:42:40 +00:00
Bill Wendling
b8017e02ca
Oy! When reverting r68073, I added in experimental code. Sorry...
...
llvm-svn: 68099
2009-03-31 08:41:31 +00:00
Owen Anderson
4486c1fac0
Remove the "fast" cases for spill and restore point determination, as these were subtlely wrong in obscure cases. Patch the testcase
...
to account for this change.
llvm-svn: 68093
2009-03-31 08:27:09 +00:00
Bill Wendling
c4b08e5eb0
Revert r68073. It's causing a failure in the Apple-style builds.
...
llvm-svn: 68092
2009-03-31 08:26:26 +00:00
Chris Lattner
42bae59678
shrink subclassid, liberating some bits for future (ab)use.
...
llvm-svn: 68087
2009-03-31 07:25:22 +00:00
Dan Gohman
97a20b8dbf
Fix live-out reg logic to not insert over-aggressive AssertZExt
...
instructions. This fixes lua.
llvm-svn: 68083
2009-03-31 01:38:29 +00:00
Evan Cheng
885bc6de52
X86 address mode isel tweak. If the base of the address is also used by a CopyToReg (i.e. it's likely live-out), do not fold the sub-expressions into the addressing mode to avoid computing the address twice. The CopyToReg use will be isel'ed to a LEA, re-use it for address instead.
...
This is not yet enabled.
llvm-svn: 68082
2009-03-31 01:13:53 +00:00
Douglas Gregor
b874bd9f41
Really, really fix PointerUnion3::is
...
llvm-svn: 68079
2009-03-31 00:34:31 +00:00
Dan Gohman
adccd30533
Except in asm-verbose mode, avoid printing labels for blocks that are
...
only reachable via fall-through edges. This dramatically reduces the
number of labels printed, and thus also the number of labels the
assembler must parse and remember.
llvm-svn: 68073
2009-03-30 22:55:17 +00:00
Devang Patel
6e68bd007a
Loop Index Split can eliminate a loop if it can determin if loop body is executed only once. There was a bug in determining IV based value of the iteration for which the loop body is executed. Fix it.
...
llvm-svn: 68071
2009-03-30 22:24:10 +00:00
Douglas Gregor
d33a33cedb
Make PointerUnion3::get work properly
...
llvm-svn: 68067
2009-03-30 21:44:13 +00:00
Evan Cheng
a84a318873
When optimzing a mul by immediate into two, the resulting mul's should get a x86 specific node to avoid dag combiner from hacking on them further.
...
llvm-svn: 68066
2009-03-30 21:36:47 +00:00
Evan Cheng
09f5be8146
Turn a 2-address instruction into a 3-address one when it's profitable even if the two-address operand is killed.
...
e.g.
%reg1024<def> = MOV r1
%reg1025<def> = ADD %reg1024, %reg1026
r0 = MOV %reg1025
If it's not possible / profitable to commute ADD, then turning ADD into a LEA saves a copy.
llvm-svn: 68065
2009-03-30 21:34:07 +00:00
Chris Lattner
32f4959ee4
update comment.
...
llvm-svn: 68060
2009-03-30 20:44:04 +00:00
Bill Wendling
2f52e6488f
Balance out quote in debug output.
...
llvm-svn: 68059
2009-03-30 20:32:22 +00:00
Bill Wendling
5f0d97c571
Fix grammar-o in comment.
...
llvm-svn: 68057
2009-03-30 20:30:02 +00:00
Chris Lattner
8aa8f5bf6a
add a PointerUnion3 class and generalize PointerUnion to work with
...
anything pointer-like, which may or may not actually be a pointer.
llvm-svn: 68056
2009-03-30 20:29:27 +00:00
Chris Lattner
73acaa8862
fix the PointerLikeTypeTraits specialization for PointerIntPair to
...
allow the traits to be specified as well.
llvm-svn: 68055
2009-03-30 20:28:50 +00:00
Dan Gohman
ff62c62b7c
Constify arguments in isSuccessor and isLayoutSuccessor.
...
llvm-svn: 68054
2009-03-30 20:06:29 +00:00
Dan Gohman
d3899dc52f
Update the polygen grammer to reflect that zext and sext are no longer
...
valid argument attributes (zeroext and signext are).
llvm-svn: 68053
2009-03-30 19:59:02 +00:00
John Mosby
169927e7ef
docs/TestingGuide.html: correction to prev. text (objdir!=srcdir required for running test-suite), removed refs to llvm-test
...
llvm-svn: 68051
2009-03-30 18:56:53 +00:00
Bob Wilson
57178e8822
Fix comment to match function name.
...
llvm-svn: 68050
2009-03-30 18:49:37 +00:00
Devang Patel
7a78f3abd3
getEntryFor() may invalidate DenseMap iterator.
...
Walking an invalidated iterator is not a good idea.
llvm-svn: 68047
2009-03-30 18:34:47 +00:00
Mike Stump
9d98cc6b93
Add ccc back for now.
...
llvm-svn: 68038
2009-03-30 17:43:04 +00:00
Anton Korobeynikov
1a7432742c
Clearify local/global relocations wording
...
llvm-svn: 68037
2009-03-30 17:38:00 +00:00
Anton Korobeynikov
56709fdffe
Fix thinko: put stuff with both global and local relocations into data.rel{.ro}, not .local
...
llvm-svn: 68036
2009-03-30 17:37:43 +00:00
Anton Korobeynikov
71278a5be8
Tweak test for recent relro stuff
...
llvm-svn: 68035
2009-03-30 15:28:40 +00:00
Anton Korobeynikov
255a3cbfb4
Fix infinite looping
...
llvm-svn: 68034
2009-03-30 15:28:21 +00:00
Anton Korobeynikov
d5e8e93a92
Properly propagate Kind.
...
llvm-svn: 68033
2009-03-30 15:28:00 +00:00
Anton Korobeynikov
7c5f3c40ca
Do not propagate ELF-specific stuff (data.rel) into other targets. This simplifies code and also ensures correctness.
...
llvm-svn: 68032
2009-03-30 15:27:43 +00:00
Anton Korobeynikov
c247fd396c
Add data.rel stuff
...
llvm-svn: 68031
2009-03-30 15:27:03 +00:00
Chris Lattner
a01a563813
fix some validation problems.
...
llvm-svn: 68026
2009-03-30 06:34:59 +00:00
Evan Cheng
471ed6e460
Forgot this test.
...
llvm-svn: 68025
2009-03-30 06:17:34 +00:00
John Mosby
b92a76ff4f
Clarify section on setting up and running test-suite
...
llvm-svn: 68023
2009-03-30 04:37:51 +00:00
Misha Brukman
d326656d9c
Updated the comment for isArithmeticShift() to match reality.
...
llvm-svn: 68016
2009-03-29 20:41:38 +00:00
Bill Wendling
8fde3036bf
Constify check. This fixes PR3900.
...
llvm-svn: 68013
2009-03-29 20:08:56 +00:00
Anton Korobeynikov
f3cf04f900
Testcase for recent ro/relocs stuff
...
llvm-svn: 68008
2009-03-29 17:14:57 +00:00
Anton Korobeynikov
bea241a5f5
IA64 is as weird as Alpha wrt r/o relocs :)
...
llvm-svn: 68007
2009-03-29 17:14:35 +00:00
Anton Korobeynikov
014a86f216
Alpha always requires global relocations to be r/w regardless of PIC.
...
llvm-svn: 68006
2009-03-29 17:14:14 +00:00