Chris Lattner
e01c6eb25a
remove some pointless null switchtosections. The IntelAsmPrinter doesn't really work anyway.
...
llvm-svn: 79321
2009-08-18 06:03:07 +00:00
Evan Cheng
d4d2a3d0a6
Fix revsh pattern.
...
llvm-svn: 79318
2009-08-18 05:43:23 +00:00
Chris Lattner
178666f2e3
add support for some targetflags on GV operands. This allows us to
...
send instructions like:
NEW: movl "L___stack_chk_guard$non_lazy_ptr" - "L1$pb"(%esi), %eax
OLD: movl L___stack_chk_guard$non_lazy_ptr-"L1$pb"(%esi), %eax
through the streamer. Several fixmes.
llvm-svn: 79317
2009-08-18 05:33:27 +00:00
Daniel Dunbar
763d4d3648
Recognize xscale as an ARM arch.
...
- Patch by Yonggang Luo.
llvm-svn: 79315
2009-08-18 04:51:26 +00:00
Daniel Dunbar
d4a31156e7
Add Triple matching for pic16 arch and solaris OS.
...
- Patch by Yonggang Luo.
llvm-svn: 79314
2009-08-18 04:43:27 +00:00
Chris Lattner
4efe44f456
fix another bozo bug
...
llvm-svn: 79313
2009-08-18 04:34:36 +00:00
Chris Lattner
64ac9ab553
fix accidentally inverted conditional and add comment.
...
llvm-svn: 79312
2009-08-18 04:33:15 +00:00
Chris Lattner
6270a4cc48
turn this conditional into something humans might actually
...
be able to understand ;-)
llvm-svn: 79311
2009-08-18 04:30:35 +00:00
Dan Gohman
b4a24b3b8b
Make TargetData optional in MemCpyOptimizer.
...
llvm-svn: 79306
2009-08-18 01:17:52 +00:00
Dan Gohman
3137ac23bc
Make TargetData optional in SimplifyLibCalls.
...
llvm-svn: 79298
2009-08-18 00:48:13 +00:00
Anton Korobeynikov
c9d9a008b5
The attached patches attempt to fix cross builds. For example, if you
...
try to use i686-darwin to build for arm-eabi, you'll quickly run into
several false assumptions that the target OS must be the same as the
host OS. These patches split $(OS) into $(HOST_OS) and $(TARGET_OS) to
help builds like "make check" and the test-suite able to cross
compile. Along the way a target of *-unknown-eabi is defined as
"Freestanding" so that TARGET_OS checks have something to work with.
Patch by Sandeep Patel!
llvm-svn: 79296
2009-08-18 00:40:33 +00:00
Dan Gohman
e28638faa2
Fix function alignment at -Os on x86 to be 1, not 2. getFunctionAlignment
...
returns a log2 value.
llvm-svn: 79293
2009-08-18 00:20:06 +00:00
Dale Johannesen
ff6e66e502
PowerPC inline asm was emitting two output operands
...
for a single "m" constraint; this is wrong because the
opcode of a load or store would have to change in parallel.
This patch makes it always compute addresses into a register,
which is correct but not as efficient as possible. 7144566.
llvm-svn: 79292
2009-08-18 00:18:39 +00:00
Devang Patel
98fb10c182
Add prefix only if it is needed.
...
llvm-svn: 79289
2009-08-17 23:17:17 +00:00
Jim Grosbach
5883594589
cleanups per review. Mostly cosmetic, plus use SmallVector in place of std::vector.
...
llvm-svn: 79287
2009-08-17 21:40:03 +00:00
Devang Patel
b3c1574994
Oops. find all llvm.dbg.global_variables.
...
llvm-svn: 79274
2009-08-17 20:36:20 +00:00
Jim Grosbach
5d064eeb2a
Remove a bit more cruft from the sjlj moving to a backend pass.
...
llvm-svn: 79272
2009-08-17 20:25:04 +00:00
Benjamin Kramer
452962eec7
Update CMakeLists.
...
llvm-svn: 79264
2009-08-17 18:47:11 +00:00
Dan Gohman
e78d27bcf9
Update comments to new-style syntax.
...
llvm-svn: 79263
2009-08-17 18:45:31 +00:00
Daniel Dunbar
14357fdab5
Fix build warning.
...
llvm-svn: 79262
2009-08-17 18:41:42 +00:00
Owen Anderson
c7e733e4fe
Privatize the last bits of static type state.
...
llvm-svn: 79258
2009-08-17 17:59:35 +00:00
Owen Anderson
5d27af4989
Move the TypeMap lock to a member on LLVMContextImpl.
...
llvm-svn: 79256
2009-08-17 17:34:27 +00:00
Owen Anderson
43d358bde0
Add locking around the attributes list.
...
llvm-svn: 79255
2009-08-17 17:10:58 +00:00
Owen Anderson
ed218e5820
Add locking around signal handler registration.
...
llvm-svn: 79254
2009-08-17 17:07:22 +00:00
Benjamin Kramer
d1c6b5de4e
Clear the uniquing table when initializing TLOF to avoid a crash when the TLOF is reinitialized with a different MCContext.
...
llvm-svn: 79253
2009-08-17 17:05:44 +00:00
Nick Lewycky
afaae7957e
Don't crash on critical edge. Patch by Andre Tavares.
...
llvm-svn: 79252
2009-08-17 17:00:57 +00:00
Jim Grosbach
4643e96d36
Move the sjlj exception handling conversions to a back-end pass where they
...
more properly belong. This allows removing the front-end conditionalized
SJLJ code, and cleans up the generated IR considerably. All of the
infrastructure code (calling _Unwind_SjLj_Register/Unregister, etc) is
added by the SjLjEHPrepare pass.
llvm-svn: 79250
2009-08-17 16:41:22 +00:00
Richard Osborne
358842178f
Update getSectionForConstant() to to allow mergable sections to be nulled out
...
if not supported by the ELF subtarget.
llvm-svn: 79249
2009-08-17 16:37:11 +00:00
David Goodwin
d65007a4a3
Extend the instruction itinerary model to include the ability to indicate the def and use cycle for each operand. This additional information is optional, so existing itineraries do not need to be changed.
...
llvm-svn: 79247
2009-08-17 16:02:57 +00:00
Chris Lattner
0ed3ef52af
the MinPad argument to PadToColumn only really makes sense to be 1,
...
just remove the argument and replace it with 1.
llvm-svn: 79246
2009-08-17 15:48:08 +00:00
Dan Gohman
7c8c5606ce
Fix more missing newlines.
...
llvm-svn: 79244
2009-08-17 15:29:31 +00:00
Dan Gohman
1749b4bb8a
Fix printing of instructions with null operands.
...
llvm-svn: 79243
2009-08-17 15:28:08 +00:00
Dan Gohman
6c4c30550e
Always print at least one space before adding a comment.
...
llvm-svn: 79242
2009-08-17 15:27:30 +00:00
Dan Gohman
e8847ebe10
Fix debug output to include a newline after printing a Value, now
...
that Value's operator<< doesn't include one.
llvm-svn: 79240
2009-08-17 15:25:05 +00:00
Duncan Sands
d0eda03882
Don't access the first element of a potentially empty
...
vector (&Formals[0]). With this change llvm-gcc builds
with expensive checking enabled for C, C++ and Fortran.
While there, change a std::vector into a SmallVector.
This is partly gratuitous, but mostly because not all
STL vector implementations define the data method (and
it should be faster).
llvm-svn: 79237
2009-08-17 14:33:27 +00:00
Chris Lattner
fc68e5368b
change AsmPrinter to switch sections using AsmStreamer instead of
...
doing it directly. This requires const'izing a bunch of stuff that
took sections, but this seems like the right semantic thing to do:
emitting a label to a section shouldn't mutate the MCSection object
itself, for example.
llvm-svn: 79227
2009-08-17 05:49:08 +00:00
Nick Lewycky
e791519ea3
Don't crash trying to promote VLAs.
...
llvm-svn: 79226
2009-08-17 05:37:31 +00:00
Chris Lattner
69a19050c0
give MCAsmStreamer a TargetAsmInfo.
...
llvm-svn: 79222
2009-08-17 04:23:44 +00:00
Chris Lattner
a1acc7cab5
formatting cleanups, no functionality change.
...
llvm-svn: 79221
2009-08-17 04:17:34 +00:00
Erick Tryzelaar
f9173af0b5
Expose creating constant ints and floats from strings in llvm-c.
...
llvm-svn: 79213
2009-08-16 23:36:46 +00:00
Erick Tryzelaar
d7980d95e8
Add helper functions to ConstantInt and ConstantFP to accept strings.
...
llvm-svn: 79212
2009-08-16 23:36:33 +00:00
Erick Tryzelaar
930c879b9e
Modify APFloat to take a StringRef instead of a c string.
...
This also adds unit tests to APFloat that mainly tests the
string handling of APFloat, but not much else of it's api.
llvm-svn: 79210
2009-08-16 23:36:19 +00:00
Dan Gohman
a7f21f1767
Add a getOffsetOf, for building a target-independent expression for
...
offsetof, similar to getSizeOf for sizeof.
llvm-svn: 79208
2009-08-16 21:26:11 +00:00
Dan Gohman
8a92a2475c
Avoid emitting XMM save code in soft-float or no-implicit-float mode
...
or some other situation where no xmm registers need to be saved.
llvm-svn: 79207
2009-08-16 21:24:25 +00:00
Dan Gohman
a5e2aaee6d
Delete an unused field.
...
llvm-svn: 79206
2009-08-16 21:19:53 +00:00
Jakob Stoklund Olesen
baae88d65a
Replace RegScavenger::DistanceMap with a simpler local algorithm.
...
llvm-svn: 79195
2009-08-16 17:41:39 +00:00
Jakob Stoklund Olesen
0b361622ff
Clean up the public interface of RegScavenger.
...
Remove unused methods and make others private.
llvm-svn: 79194
2009-08-16 17:41:20 +00:00
Jakob Stoklund Olesen
fcfe355efd
Be more clever about regclasses in ScheduleDAGSDNodes::EmitCopyFromReg.
...
If two uses of a CopyFromReg want different regclasses, first try a common
sub-class, then fall back on the copy emitted in AddRegisterOperand. There is
no need for an assert here. The cross-class joiner usually cleans up nicely.
llvm-svn: 79193
2009-08-16 17:40:59 +00:00
Benjamin Kramer
a8760e3e5a
Fix use after free in Thumb2SizeReduction (PR4707). A MachineInstr was used after erasure.
...
llvm-svn: 79189
2009-08-16 11:56:42 +00:00
Bill Wendling
ee380b1dd2
Styalistic and format changes. No functionality change.
...
llvm-svn: 79187
2009-08-16 11:00:26 +00:00
Chris Lattner
76b09f600c
add support for external symbols + X86::MOVPC32r.
...
llvm-svn: 79175
2009-08-16 04:28:14 +00:00
Eli Friedman
ca19f19760
Fix for PR3016: detect the tricky case, where there are
...
unfoldable references to a PHI node in the block being folded, and disable
the transformation in that case. The correct transformation of such PHI
nodes depends on whether BB dominates Succ, and dominance is expensive
to compute here. (Alternatively, it's possible to check whether any
uses are live, but that's also essentially a dominance calculation.
Another alternative is to use reg2mem, but it probably isn't a good idea to
use that in simplifycfg.)
Also, remove some incorrect code from CanPropagatePredecessorsForPHIs
which is made unnecessary with this patch: it didn't consider the case
where a PHI node in BB has multiple uses.
llvm-svn: 79174
2009-08-16 04:23:49 +00:00
Chris Lattner
ca89ccb1dd
implement support for lowering references to global addresses. For example, we now
...
can asmprint:
NEW: movl "L___stack_chk_guard$non_lazy_ptr", %eax
OLD: movl L___stack_chk_guard$non_lazy_ptr, %eax
where 'new' is coming out of the MCInst version of the printer.
llvm-svn: 79170
2009-08-16 03:12:25 +00:00
Chris Lattner
af83ac2ba5
more formatting improvements, no functionality change.
...
llvm-svn: 79167
2009-08-16 02:45:18 +00:00
Chris Lattner
9a017d13c8
code formatting improvements, no functionality change.
...
llvm-svn: 79165
2009-08-16 02:36:40 +00:00
Erick Tryzelaar
175dd821cc
Add an llvm-c function that lets you insert an instruction with a name.
...
llvm-svn: 79163
2009-08-16 02:20:57 +00:00
Erick Tryzelaar
c0815ef591
Expose most of the Constant creation functions to llvm-c.
...
llvm-svn: 79160
2009-08-16 02:20:12 +00:00
Erick Tryzelaar
a439c22dbf
Expose most of the rest of IRBuilder's functions to llvm-c.
...
llvm-svn: 79159
2009-08-16 02:19:59 +00:00
Evan Cheng
99a029d217
Needs to check whether unaligned load / store of i64 is legal here.
...
llvm-svn: 79150
2009-08-15 23:41:42 +00:00
Bill Wendling
29ea31a8ad
Remove <iostream>.
...
llvm-svn: 79146
2009-08-15 22:28:08 +00:00
Dan Gohman
82430f54ec
Mingw also doesn't have st_blksize.
...
llvm-svn: 79142
2009-08-15 21:41:03 +00:00
Bill Wendling
696d0388e9
An overhaul of the exception handling code. This is arguably more correct than
...
what was there before. In "no FP mode", we weren't generating labels and unwind
table entries after each "push" instruction. While more than likely "okay", it's
not technically correct. The major thing was that the ordering of when to define
a new CFA register and at what offset wasn't correct. This would cause the
exception handling to fail in ways most miserable to users.
I also cleaned up some code a bit. There's one function which has a "return" at
the beginning, so it's never used. Should I just remove it? :-)
llvm-svn: 79139
2009-08-15 21:27:32 +00:00
Bill Wendling
962adec4ee
Reapply r79127. It was fixed by d0k.
...
llvm-svn: 79136
2009-08-15 21:21:19 +00:00
Bill Wendling
bfebbb6477
Revert r79127. It was causing compilation errors.
...
llvm-svn: 79135
2009-08-15 21:14:01 +00:00
Benjamin Kramer
5c54156e82
Don't try to get the context from an erased Instruction.
...
llvm-svn: 79134
2009-08-15 21:07:49 +00:00
Benjamin Kramer
b5771e5e21
Unbreak build. Evan, please make sure my changes are correct.
...
llvm-svn: 79133
2009-08-15 20:46:16 +00:00
Nick Lewycky
de61ef6c5e
SSI construction should just go ahead and ignore instructions in unreachable
...
blocks.
llvm-svn: 79132
2009-08-15 20:12:18 +00:00
Evan Cheng
5d841097a9
Change allowsUnalignedMemoryAccesses to take type argument since some targets
...
support unaligned mem access only for certain types. (Should it be size
instead?)
ARM v7 supports unaligned access for i16 and i32, some v6 variants support it
as well.
llvm-svn: 79127
2009-08-15 19:23:44 +00:00
Jakob Stoklund Olesen
7f4ef2d59a
Refine EarlyClobber assert in register scavenger.
...
It is legal for an inline asm operand to use an earlyclobber register if the
use operand is tied to the earlyclobber operand. The issue is discussed here:
http://gcc.gnu.org/ml/gcc/1999-04n/msg00431.html
We should perhaps let only the machine code verifier worry about these finer
details. EarlyClobber operands are not really interesting to the scavenger.
This fixes PR4528 for the third time.
llvm-svn: 79122
2009-08-15 18:16:58 +00:00
Chris Lattner
07186e7840
the .eh_frame sections we generate need to be writable (which
...
is why they are datarel). This should fix PR4724, and is fallout
from r78890.
llvm-svn: 79111
2009-08-15 16:54:02 +00:00
Nicolas Geoffray
572b4e6cb3
Use the new API for creating an OpaqueType.
...
llvm-svn: 79107
2009-08-15 15:41:32 +00:00
Chris Lattner
e12f92568f
tidy up
...
llvm-svn: 79101
2009-08-15 15:08:28 +00:00
Nicolas Geoffray
679c83e1bf
Update cpp generation with new LLVM API for primitive types.
...
llvm-svn: 79098
2009-08-15 14:47:42 +00:00
Sanjiv Gupta
2399e49802
Revert a few changes that were done in 78603.
...
PIC16DebugInfo currently rely on NameStr of composite type descriptors to uniquely
identify debug info for two aggregate type decls with same name.
This implementation will change when we have MDNodes based debug info implemenatation in place
llvm-svn: 79097
2009-08-15 14:36:48 +00:00
Jakob Stoklund Olesen
8f6660c417
Don't setCalleeSavedInfoValid() until spills are interted.
...
In a naked function, the flag is never set and getPristineRegs() returns an
empty list. That means naked functions are able to clobber callee saved
registers, but that is the whole point of naked functions.
This fixes PR4716.
llvm-svn: 79096
2009-08-15 13:10:46 +00:00
Jakob Stoklund Olesen
db3f862b6f
Allow double defs in the machine code verifier after the addPreRegAlloc passes.
...
llvm-svn: 79095
2009-08-15 13:10:15 +00:00
Richard Osborne
31f04e14f0
Move XCore AsmPrinter to XCore/AsmPrinter directory.
...
llvm-svn: 79094
2009-08-15 12:53:15 +00:00
Tilmann Scheller
03f517b799
Add support for the PowerPC 64-bit SVR4 ABI.
...
The Link Register is volatile when using the 32-bit SVR4 ABI.
Make it possible to use the 64-bit SVR4 ABI.
Add non-volatile registers for the 64-bit SVR4 ABI.
Make sure r2 is a reserved register when using the 64-bit SVR4 ABI.
Update PPCFrameInfo for the 64-bit SVR4 ABI.
Add FIXME for 64-bit Darwin PPC.
Insert NOP instruction after direct function calls.
Emit official procedure descriptors.
Create TOC entries for GlobalAddress references.
Spill 64-bit non-volatile registers to the correct slots.
Only custom lower VAARG when using the 32-bit SVR4 ABI.
Use simple VASTART lowering for the 64-bit SVR4 ABI.
llvm-svn: 79091
2009-08-15 11:54:46 +00:00
Jakob Stoklund Olesen
e093ae5810
Update LocalRewriter::DistanceMap when inserting stack loads.
...
In the included test case, a stack load was not included in DistanceMap. That
caused TransferDeadness to ignore the instruction, leading to a scavenger
assert.
llvm-svn: 79090
2009-08-15 11:03:03 +00:00
Evan Cheng
e65f967fa0
80 col violations.
...
llvm-svn: 79087
2009-08-15 08:38:52 +00:00
Evan Cheng
9d351a7246
Turn on if-conversion for thumb2.
...
llvm-svn: 79084
2009-08-15 07:59:10 +00:00
Chris Lattner
aa462f6d51
update for rename.
...
llvm-svn: 79082
2009-08-15 06:14:07 +00:00
Chris Lattner
8101f115c5
rename PIC16Section.h -> MCSectionPIC16.h for consistency with
...
the class it defines.
llvm-svn: 79081
2009-08-15 06:13:40 +00:00
Chris Lattner
7021a8b286
cmake likes its explicit list of files to build.
...
llvm-svn: 79080
2009-08-15 06:10:23 +00:00
Chris Lattner
ee52642cd3
use XCore-specific section with xcore specific cp/dp flags to restore
...
support for globals going into the appropriate sections with the flags.
This hopefully finishes unbreaking the previous behavior that I broke before.
llvm-svn: 79079
2009-08-15 06:09:35 +00:00
Chris Lattner
2c1a96d901
If ELF subtargets don't want to support 4/8/16-byte mergable sections, allow
...
them to null out the default section pointers.
llvm-svn: 79078
2009-08-15 06:08:34 +00:00
Chris Lattner
3665e2058e
add support for target-specific ELF section flags, add a new MCSectionXCore
...
class which represents the XCore cp/dp section flags. No functionality
change yet.
llvm-svn: 79077
2009-08-15 05:56:11 +00:00
Dan Gohman
fcb5e33aa1
Simplify a few more things, eliminating a few more dependencies on
...
"the current basic block".
llvm-svn: 79069
2009-08-15 02:07:36 +00:00
Dan Gohman
a68aa347d8
Simplify this code to not depend as much on CurMBB.
...
llvm-svn: 79068
2009-08-15 02:06:22 +00:00
Evan Cheng
cf13e0c732
Do not use frame register to reference fixed stack objects if the function is frameless.
...
llvm-svn: 79067
2009-08-15 02:05:35 +00:00
Dan Gohman
d0419623b1
Always check to see if raw_fd_ostream's file descriptor is attached to
...
a terminal, not just when it's STDOUT_FILENO.
llvm-svn: 79066
2009-08-15 02:05:19 +00:00
Dan Gohman
8aea7a0db0
Add support for column computation on unbuffered streams.
...
llvm-svn: 79065
2009-08-15 02:02:59 +00:00
Dan Gohman
4541bef274
Move FormattedStream's write_impl out of line.
...
llvm-svn: 79064
2009-08-15 02:01:04 +00:00
Dan Gohman
fe04559261
Remove an unnecessary #include.
...
llvm-svn: 79063
2009-08-15 01:56:38 +00:00
Chris Lattner
c807a76334
switch DominanceFrontier::splitBlock to use a smallvector for
...
the pred list instead of a vector, saving a boat load of malloc/free's.
llvm-svn: 79062
2009-08-15 01:39:28 +00:00
Dan Gohman
d69323d37a
On x86-64, for a varargs function, don't store the xmm registers to
...
the register save area if %al is 0. This avoids touching xmm
regsiters when they aren't actually used.
llvm-svn: 79061
2009-08-15 01:38:56 +00:00
Devang Patel
b6add4ace3
Do not completely skip subrange info for a zero sized array.
...
llvm-svn: 79044
2009-08-14 20:59:16 +00:00
Evan Cheng
4e97ccc132
Leaf functions which do not save CSRs can be frameless even with -disable-fp-elim.
...
llvm-svn: 79039
2009-08-14 20:48:13 +00:00
Anton Korobeynikov
3a0cde8c91
Allow targets to specify their choice of calling conventions per
...
libcall. Take advantage of this in the ARM backend to rectify broken
choice of CC when hard float is in effect. PIC16 may want to see if
it could be of use in MakePIC16Libcall, which works unchanged.
Patch by Sandeep!
llvm-svn: 79033
2009-08-14 20:10:52 +00:00
Evan Cheng
67fd47b38b
Add Thumb2 lsr hooks.
...
llvm-svn: 79032
2009-08-14 20:09:37 +00:00
Daniel Dunbar
3c9ab92a24
llvm-mc: Fix bugs where bytes were unintentionally being printed as signed.
...
- We now print all of 403.gcc cleanly (llvm-mc -> 'as' as diffed to 'as'), minus two
'rep;movsl' instructions (which I missed before).
llvm-svn: 79031
2009-08-14 19:59:24 +00:00
Oscar Fuentes
4acb0629da
CMake: Corrected variable check.
...
llvm-svn: 79030
2009-08-14 19:56:04 +00:00
Bruno Cardoso Lopes
e298b64a93
*try* to use a better name to describe how common symbols are marked on the elf object file.
...
llvm-svn: 79029
2009-08-14 19:45:38 +00:00
Evan Cheng
ebbcd00c17
80 col violation.
...
llvm-svn: 79026
2009-08-14 19:11:20 +00:00
Daniel Dunbar
b9d9ce9513
llvm-mc: When handling a .set, make sure to print subsequent references to the
...
symbol as the symbol name itself, not the expression it was defined to. These
have different semantics due to the quirky .set behavior (which absolutizes an
expression that would otherwise be treated as a relocation).
llvm-svn: 79025
2009-08-14 19:10:46 +00:00
Anton Korobeynikov
a52d80928a
Cleanup the mess in msp430 target registration and hopefully unbreak the build
...
llvm-svn: 79024
2009-08-14 19:06:50 +00:00
Evan Cheng
1fa8ad98aa
Indentation.
...
llvm-svn: 79022
2009-08-14 19:01:37 +00:00
Daniel Dunbar
b00271e266
llvm-mc: zerofill shouldn't print quotes around the section,segment.
...
llvm-svn: 79017
2009-08-14 18:51:45 +00:00
Chris Lattner
be587b554b
fix "pc" to be lower case in a target triple, patch by Yonggang Luo
...
llvm-svn: 79016
2009-08-14 18:48:13 +00:00
Anton Korobeynikov
094a764f5d
Hopefully unbreak cmake builds
...
llvm-svn: 79015
2009-08-14 18:46:49 +00:00
Evan Cheng
7d8caa143b
Also shrink immediate branches; also more assembler workarounds.
...
llvm-svn: 79014
2009-08-14 18:31:44 +00:00
Anton Korobeynikov
5787e69dfb
Give MSP430 a separate asmprinter lib
...
llvm-svn: 79012
2009-08-14 18:28:12 +00:00
Anton Korobeynikov
933d8e1118
Properly handle indirect win64 args when they're passed in memory
...
llvm-svn: 79009
2009-08-14 18:19:10 +00:00
Owen Anderson
fc21fa21cf
Get the CPP backend into some semblance of working by updating for numerous LLVMContext changes,
...
as well as the StringRef change.
llvm-svn: 79006
2009-08-14 17:41:33 +00:00
Bob Wilson
80db08baec
Now that all the legal Neon shuffles (or at least the ones that have been
...
implemented so far) are recognized during legalization, it is easy to fall
back to the default expansion for other shuffles.
llvm-svn: 78995
2009-08-14 05:16:33 +00:00
Bob Wilson
d337cde6e5
Create a new ARM-specific DAG node, VDUP, to represent a splat from a
...
scalar_to_vector. Generate these VDUP nodes during legalization instead
of trying to recognize the pattern during selection.
llvm-svn: 78994
2009-08-14 05:13:08 +00:00
Bob Wilson
7a311914ab
During legalization, change Neon vdup_lane operations from shuffles to
...
target-specific VDUPLANE nodes. This allows the subreg handling for the
quad-register version to be done easily with Pats in the .td file, instead
of with custom code in ARMISelDAGToDAG.cpp.
llvm-svn: 78993
2009-08-14 05:08:32 +00:00
Oscar Fuentes
ed9c7f2749
CMake: updated list of source files for library MC.
...
llvm-svn: 78988
2009-08-14 04:14:45 +00:00
Daniel Dunbar
dc5840c57c
Update llvm-mc / MCAsmStreamer to print the instruction using the actual target
...
specific printer (this only works on x86, for now).
- This makes it possible to do some correctness checking of the parsing and
matching, since we can compare the results of 'as' on the original input, to
those of 'as' on the output from llvm-mc.
- In theory, we could now have an easy ATT -> Intel syntax converter. :)
llvm-svn: 78986
2009-08-14 03:48:55 +00:00
Daniel Dunbar
ca38bc510e
Add virtual printMCInst method to AsmPrinter, as a quick way to expose the API
...
to print one instruction.
llvm-svn: 78985
2009-08-14 03:43:57 +00:00
Daniel Dunbar
b0adbe646d
Add X86 instruction printer support for printing MCValue operands.
...
llvm-svn: 78984
2009-08-14 03:42:12 +00:00
Daniel Dunbar
259bc4b0e7
Add MCSymbol::{print, dump}
...
llvm-svn: 78983
2009-08-14 03:41:23 +00:00
Daniel Dunbar
127e3bc13f
Add MCValue::{print, dump}
...
llvm-svn: 78982
2009-08-14 03:11:09 +00:00
Daniel Dunbar
da9a46b9de
llvm-mc: Move MCAsmToken::getLoc() into MC library where it belongs.
...
llvm-svn: 78980
2009-08-14 02:18:40 +00:00
Evan Cheng
8a3ff4615e
Indentation change.
...
llvm-svn: 78978
2009-08-14 01:56:37 +00:00
Evan Cheng
45d6a21e21
Shrink ADR and LDR from constantpool late during constantpool island pass.
...
llvm-svn: 78970
2009-08-14 00:32:16 +00:00
Evan Cheng
22969c64d0
New entry.
...
llvm-svn: 78968
2009-08-14 00:16:47 +00:00
Dan Gohman
b3aa090ddf
Make TargetData optional in GlobalOpt and ArgumentPromotion.
...
llvm-svn: 78967
2009-08-14 00:11:03 +00:00
Dan Gohman
ba476a2945
Make these matching rules more strict so that they don't
...
accidentally match unrelated things.
llvm-svn: 78966
2009-08-14 00:10:19 +00:00
Erick Tryzelaar
f5b44db848
Expose LLVMContext to llvm-c.
...
llvm-svn: 78964
2009-08-14 00:01:31 +00:00
Dan Gohman
3497fde219
Fix MCSectionELF::ShouldOmitSectionDirective's matching of .data and
...
friends so that it doesn't match sections like .data.rel.local, which
should not be emitted as section directives.
llvm-svn: 78963
2009-08-13 23:56:34 +00:00
Daniel Dunbar
eab68eaec4
TargetRegistry: Change AsmPrinter constructor to be typed as returning an
...
AsmPrinter instance (instead of just a FunctionPass)
llvm-svn: 78962
2009-08-13 23:48:47 +00:00
Daniel Dunbar
d4c5293717
llvm-mc: Add dummy MCStreamer implementation, (eventually) for use in profiling.
...
- Currently unused.
- A few other random comment fixes lumped in.
llvm-svn: 78960
2009-08-13 23:36:34 +00:00
Bruno Cardoso Lopes
98ffbd5041
Remove HasCrazyBSS and add a flag in TAI to indicate that '.section'
...
must be emitted for PowerPC-Linux '.bss' section
llvm-svn: 78958
2009-08-13 23:30:21 +00:00
Owen Anderson
dc11fe967d
Actually privatize a IntegerTypes, and fix a few bugs exposed by this.
...
llvm-svn: 78955
2009-08-13 23:27:32 +00:00
Dan Gohman
0c10b8864a
When standard output is a terminal, set outs() to be unbuffered, to
...
mimic the behavior of stdtout, which is line-buffered when the output
is a terminal. This fixes some issues with bugpoint output appearing
being printed out of order.
llvm-svn: 78953
2009-08-13 23:18:56 +00:00
Dan Gohman
f55822e7cd
Make formatted_raw_ostream restore the buffer settings of the
...
underlying stream when it is finished, so that clients don't
have to do this manually.
llvm-svn: 78952
2009-08-13 23:16:59 +00:00
Dan Gohman
4d57894a63
Take the fast path for any named value and any GlobalValue, which doesn't
...
need TypePrinting despite being a subclass of Constant. This fixes
compile-time problems especially visible on 403.gcc when -asm-verbose is
enabled.
llvm-svn: 78951
2009-08-13 23:07:11 +00:00
Owen Anderson
9df206d02d
Push LLVMContexts through the IntegerType APIs.
...
llvm-svn: 78948
2009-08-13 21:58:54 +00:00
Bruno Cardoso Lopes
a7fc820079
Remove hack used to strip unwanted chars from section name
...
Use MCSectionELF methods as much as possible, removing some
ELFWriter methods which are now unused
llvm-svn: 78940
2009-08-13 21:25:27 +00:00
Bruno Cardoso Lopes
15f3e9a5fa
Add a method to return if the ELF section contains only common symbols!
...
llvm-svn: 78937
2009-08-13 21:08:56 +00:00
Dan Gohman
fa45862247
Fix a compiler warning about comparing signed with unsigned.
...
llvm-svn: 78933
2009-08-13 20:32:03 +00:00
Daniel Dunbar
62eec42595
TargetRegistry: Reorganize AsmPrinter construction so that clients pass in the
...
TargetAsmInfo. This eliminates a dependency on TargetMachine.h from
TargetRegistry.h, which technically was a layering violation.
- Clients probably can only sensibly pass in the same TargetAsmInfo as the
TargetMachine has, but there are only limited clients of this API.
llvm-svn: 78928
2009-08-13 19:38:51 +00:00
Dan Gohman
c91e786fa1
Add an assert to check copy_to_buffer's precondition.
...
llvm-svn: 78926
2009-08-13 18:38:15 +00:00
Dan Gohman
c692477e5e
Set raw_os_ostream, raw_string_ostream, and raw_svector_ostream to be
...
unbuffered. std::ostream does its own buffering, and std::string and
SmallVector both have allocation strategies intended to handle frequent
appending.
llvm-svn: 78924
2009-08-13 17:41:40 +00:00
Dan Gohman
4ac7200d66
Add support to raw_ostream for sizing the buffer according to the
...
needs of the underlying output mechanism. raw_fd_ostream now uses
st_blksize from fstat to determine a buffer size.
llvm-svn: 78923
2009-08-13 17:27:29 +00:00
Daniel Dunbar
854120b114
Reapply pieces of 78914 reverted in 78916, this has been fixed.
...
llvm-svn: 78921
2009-08-13 17:08:54 +00:00
Daniel Dunbar
40f904fcfb
Revert 78892 and 78895, these break generating working executables on
...
x86_64-apple-darwin10.
--- Reverse-merging r78895 into '.':
U test/CodeGen/PowerPC/2008-12-12-EH.ll
U lib/Target/DarwinTargetAsmInfo.cpp
--- Reverse-merging r78892 into '.':
U include/llvm/Target/DarwinTargetAsmInfo.h
U lib/Target/X86/X86TargetAsmInfo.cpp
U lib/Target/X86/X86TargetAsmInfo.h
U lib/Target/ARM/ARMTargetAsmInfo.h
U lib/Target/ARM/ARMTargetMachine.cpp
U lib/Target/ARM/ARMTargetAsmInfo.cpp
U lib/Target/PowerPC/PPCTargetAsmInfo.cpp
U lib/Target/PowerPC/PPCTargetAsmInfo.h
U lib/Target/PowerPC/PPCTargetMachine.cpp
G lib/Target/DarwinTargetAsmInfo.cpp
llvm-svn: 78919
2009-08-13 17:03:38 +00:00
Jim Grosbach
361b7db9bd
Add missing defs of R2 and D1.
...
llvm-svn: 78918
2009-08-13 16:59:44 +00:00
Daniel Dunbar
42cd283c34
Remove obsoleted files (from AsmPrinter move)
...
llvm-svn: 78917
2009-08-13 16:57:03 +00:00
Owen Anderson
99061befb3
Revert r78914, as it was breaking the build.
...
llvm-svn: 78916
2009-08-13 16:54:39 +00:00
Sanjiv Gupta
fd1ffc19f9
Move PIC16 AsmPrinter to PIC16/AsmPrinter directory.
...
Remove CooperTargetMachine, as currently only one is supported.
llvm-svn: 78914
2009-08-13 16:37:05 +00:00
Jakob Stoklund Olesen
a90cf1b7ea
Track pristine registers as if they were live-in in the register scavenger.
...
llvm-svn: 78913
2009-08-13 16:20:04 +00:00
Jakob Stoklund Olesen
e6a3eb8852
Use pristine register info in machine code verifier.
...
So far these registers are simply tracked as if they were live-in.
llvm-svn: 78912
2009-08-13 16:19:51 +00:00
Jakob Stoklund Olesen
96890fb0cf
Add MachineFrameInfo::getPristineRegisters(MBB) method.
...
llvm-svn: 78911
2009-08-13 16:19:33 +00:00
David Goodwin
dbb30ec8df
Add callback to allow target to adjust latency of schedule dependency edge.
...
llvm-svn: 78910
2009-08-13 16:05:04 +00:00
Dan Gohman
fb52ff3ba7
Move SetBufferSize and SetUnbuffered out of line.
...
llvm-svn: 78909
2009-08-13 15:58:55 +00:00
David Goodwin
dd797db6bd
Finalize itineraries for cortex-a8 integer multiply
...
llvm-svn: 78908
2009-08-13 15:51:13 +00:00
Dan Gohman
3469d2e1a9
Fix the buffer handling logic so that write_impl is always called with
...
a full buffer, rather than often being called with a
slightly-less-than-full buffer.
llvm-svn: 78907
2009-08-13 15:44:52 +00:00
Dan Gohman
d559e66749
Fix a 4x slowdown in llc -asm-verbose caused by the use of
...
WriteAsOperand in more places.
Now that more things are using WriteAsOperand, its behavior of
constructing a TypePrinting object and populating it with strings for all
the numbered types in the Module on each call is a significant bottleneck.
Fancier solutions could be pursued here, but for now, just bypass the
TypePrinting overhead in obvious cases.
llvm-svn: 78906
2009-08-13 15:27:57 +00:00
Jim Grosbach
6511e74282
Remove unnecessary newline
...
llvm-svn: 78905
2009-08-13 15:12:16 +00:00
Jim Grosbach
aba7f6b60b
Correct comment wording
...
llvm-svn: 78904
2009-08-13 15:11:43 +00:00
Chris Lattner
4cebf6ca28
reintroduce support for Mips "small" section handling. This is
...
implemented somewhat differently than before, but it should have
the same functionality and the previous testcase passes again.
llvm-svn: 78900
2009-08-13 06:28:06 +00:00
Evan Cheng
8bfaf895e5
tPOP_RET now has predicate operands.
...
llvm-svn: 78898
2009-08-13 06:05:07 +00:00
Bob Wilson
e3eedf3cd2
Add a fixme message about canonicalizing floating-point vector types.
...
llvm-svn: 78897
2009-08-13 06:01:30 +00:00
Bob Wilson
8cb7da85e3
Revert r78852 for now. I want to do this differently, but I don't have time
...
to fix it tonight.
llvm-svn: 78896
2009-08-13 05:58:56 +00:00
Chris Lattner
696f1d8318
fix typo, add 10.6 version of test for my previous patch.
...
llvm-svn: 78895
2009-08-13 05:43:33 +00:00
Chris Lattner
fa4858791d
Restore some "small section" support code, reverting my patch from r76936.
...
llvm-svn: 78894
2009-08-13 05:41:27 +00:00
Evan Cheng
309650d7ba
It's ok to spill a tGPR register as long as it's still allocated a low register.
...
llvm-svn: 78893
2009-08-13 05:40:51 +00:00
Chris Lattner
4df533ba16
fix a minor fixme. When building with SL and later tools, the ".eh" symbols
...
don't need to be exported from the .o files.
llvm-svn: 78892
2009-08-13 05:30:22 +00:00
Mon P Wang
d56e4482fc
When InstCombine simplifies a load -> extract element to gep -> load, place
...
the new load by the old load instead of by the extract element because
a store could have occurred between the load and extract element.
llvm-svn: 78891
2009-08-13 05:12:13 +00:00
Bruno Cardoso Lopes
f2855aabec
Change MCSectionELF to represent a section semantically instead of
...
syntactically as a string, very similiar to what Chris did with MachO.
The parsing support and validation is not introduced yet.
llvm-svn: 78890
2009-08-13 05:07:35 +00:00
Andreas Bolka
a2220fbb8d
Simplify conditional.
...
llvm-svn: 78889
2009-08-13 03:05:20 +00:00
Andreas Bolka
68a2326175
Simplify and reduce indentation using early exits.
...
No intended functionality change.
llvm-svn: 78888
2009-08-13 03:00:57 +00:00
Andreas Bolka
c4476bdb2e
DEBUGify some DOUTs.
...
llvm-svn: 78887
2009-08-13 02:45:03 +00:00
Andreas Bolka
00d6ad063a
Prune trailing whitespace.
...
llvm-svn: 78886
2009-08-13 02:40:50 +00:00
Daniel Dunbar
3a5a25d5d5
Convert APint::{fromString,APInt,getBitsNeeded} to use StringRef.
...
- Patch by Erick Tryzelaar, with some edits (and a bug fix) from me.
llvm-svn: 78885
2009-08-13 02:33:34 +00:00
Bob Wilson
2940b8e9a5
Add a comment to describe why vector shuffles are legalized to custom DAG nodes.
...
llvm-svn: 78884
2009-08-13 02:13:04 +00:00
Bob Wilson
11ee30bdc8
Use cast<> instead of dyn_cast<> in places where the type is known.
...
llvm-svn: 78881
2009-08-13 01:57:47 +00:00
Dan Gohman
ea15a77701
Change the indentation for LLVM Assembly files from 1 tab to 2 spaces.
...
This is vaguely consistent with LLVM's own source code, but more
importantly it lets more lines stay within 80 columns.
llvm-svn: 78879
2009-08-13 01:41:52 +00:00
Dan Gohman
4b9cae5af3
Various AsmWriter output cleanups. Use WriteAsOperand instead of
...
PrintUnmangledNameSafely.
llvm-svn: 78878
2009-08-13 01:36:44 +00:00
Chris Lattner
04f74d3510
sink uniquing of sections out of MCContext into the ELF and PECOFF TLOF implementations.
...
MCContext no longer maintains a string -> section map.
llvm-svn: 78874
2009-08-13 00:37:15 +00:00
Dale Johannesen
0e41973cf4
Symbols with LinkerPrivateLinkage are weak.
...
This allows WebKit to build again.
llvm-svn: 78872
2009-08-13 00:28:52 +00:00
Chris Lattner
bd02c60d9e
make PIC16 unique its own sections instead of having mcontext do it.
...
llvm-svn: 78871
2009-08-13 00:26:52 +00:00
Chris Lattner
7ead5b498b
add some comments: MCContext owns the MCSections, but it bump pointer allocates
...
them, so it doesn't have to explicitly free them.
llvm-svn: 78870
2009-08-13 00:21:53 +00:00
Chris Lattner
52e6d663b3
reject invalid code like:
...
int x __attribute__((section("_foo, _bar"))) = 4;
int y __attribute__((section("_foo, _bar, 4byte_literals"))) = 1;
llvm-svn: 78867
2009-08-13 00:05:07 +00:00
Chris Lattner
4c9dae455e
implement support for uniquing MachO sections.
...
llvm-svn: 78866
2009-08-12 23:55:02 +00:00
Dan Gohman
9c9c3f30bd
Now that numbered types have their number printed, it's no longer
...
interesting to print the number in a comment. Numbered instructions
don't need their number in a comment either.
Also, tidy up newline printing.
llvm-svn: 78865
2009-08-12 23:54:22 +00:00
Chris Lattner
456301c2cd
some compiler don't get string from TLOF.h implicitly or something.
...
llvm-svn: 78864
2009-08-12 23:53:59 +00:00
Chris Lattner
7eeb032b37
reduce #includage
...
llvm-svn: 78860
2009-08-12 23:34:27 +00:00
Dan Gohman
4ee8471442
Extend the AsmWriter to print unnamed numbered types as "%0 = type ..."
...
and unnamed numbered global variables as "@0 = global ...". Extend the
AsmParser to recognize these forms.
llvm-svn: 78859
2009-08-12 23:32:33 +00:00
Bob Wilson
b089d07a1f
Recognize Neon VDUP shuffles during legalization instead of selection.
...
llvm-svn: 78852
2009-08-12 22:54:19 +00:00
Bob Wilson
d8b7ca4c28
Recognize Neon VREV shuffles during legalization instead of selection.
...
llvm-svn: 78850
2009-08-12 22:31:50 +00:00
Dan Gohman
bc6b14ba00
This void is implicit in C++.
...
llvm-svn: 78848
2009-08-12 22:10:57 +00:00
David Goodwin
875c5b92a2
Fix counting of Post-RA scheduling stalls. Improve debug output.
...
llvm-svn: 78843
2009-08-12 21:47:46 +00:00
Lang Hames
72bbdbaf85
Added RegisterCoalescer to required passes for PBQP.
...
llvm-svn: 78840
2009-08-12 21:04:53 +00:00
Dan Gohman
8ce3f1d1df
Use WriteAsOperand to print BasicBlock names.
...
llvm-svn: 78838
2009-08-12 20:56:56 +00:00
Dan Gohman
9b4700f3ce
Make AsmWriter more careful with formatted_raw_ostream so that
...
it doesn't leave the underlying stream in unbuffered mode when
the stream was originally buffered.
Also, change WriteAsOperand back to plain raw_ostream. This
lets it work for either formatted_raw_ostream or plain
raw_ostream, so that it doesn't have to force a buffer flush
on a plain raw_ostream.
llvm-svn: 78837
2009-08-12 20:56:03 +00:00
Bob Wilson
0cf2be2466
Generate Neon VTBL and VTBX instructions from the corresponding intrinsics.
...
llvm-svn: 78835
2009-08-12 20:51:55 +00:00
Dan Gohman
61b163ccdc
Use PadToColumn instead of tabs.
...
llvm-svn: 78834
2009-08-12 18:55:32 +00:00
Dan Gohman
1da933d3e3
Fix a few more places to use PadToColumn instead of tabs. And fix
...
the basic block label printing to check whether a block has a name
before printing a comment character and whitespace for it.
llvm-svn: 78830
2009-08-12 18:47:05 +00:00
Evan Cheng
9199f62b3d
PredCC is meant to be 2 bits wide, like PredCC1.
...
llvm-svn: 78829
2009-08-12 18:35:50 +00:00
Dan Gohman
83d1de03ca
Use PadToColumn instead of tabs for aligning comments. Fix one place
...
that emitted unnecessary whitespace outside of VerboseAsm mode.
llvm-svn: 78828
2009-08-12 18:32:22 +00:00
David Goodwin
90e7f9873c
Enhance the InstrStage object to enable the specification of an Itinerary with overlapping stages. The default is to maintain the current behavior that the "next" stage immediately follows the previous one.
...
llvm-svn: 78827
2009-08-12 18:31:53 +00:00
Dale Johannesen
85f81b93cb
Add attempted idiotproofing comment per review.
...
llvm-svn: 78825
2009-08-12 18:04:11 +00:00
Chris Lattner
660497ce3b
improve win32 path support, patch by Baptiste Lepilleur!
...
llvm-svn: 78823
2009-08-12 17:47:06 +00:00
Dale Johannesen
edc3ef6a0b
Fix a nondeterministic bug in APInt::roundToDouble;
...
when !isSingleWord() but getActiveBits() is small,
we were using the pointer value instead of the low
word of the integer value.
llvm-svn: 78821
2009-08-12 17:42:34 +00:00
Jim Grosbach
74c682dde4
Add catch block handling to SjLj exception handling.
...
llvm-svn: 78817
2009-08-12 17:38:44 +00:00
Dan Gohman
9f80d2be6b
Make LLVM Assembly dramatically easier to read by aligning the comments,
...
using formatted_raw_ostream's PadToColumn.
Before:
bb1: ; preds = %bb
%2 = sext i32 %i.01 to i64 ; <i64> [#uses=1]
%3 = getelementptr double* %p, i64 %2 ; <double*> [#uses=1]
%4 = load double* %3, align 8 ; <double> [#uses=1]
%5 = fmul double %4, 1.100000e+00 ; <double> [#uses=1]
%6 = sext i32 %i.01 to i64 ; <i64> [#uses=1]
%7 = getelementptr double* %p, i64 %6 ; <double*> [#uses=1]
After:
bb1: ; preds = %bb
%2 = sext i32 %i.01 to i64 ; <i64> [#uses=1]
%3 = getelementptr double* %p, i64 %2 ; <double*> [#uses=1]
%4 = load double* %3, align 8 ; <double> [#uses=1]
%5 = fmul double %4, 1.100000e+00 ; <double> [#uses=1]
%6 = sext i32 %i.01 to i64 ; <i64> [#uses=1]
%7 = getelementptr double* %p, i64 %6 ; <double*> [#uses=1]
Several tests required whitespace adjustments.
llvm-svn: 78816
2009-08-12 17:23:50 +00:00
Bob Wilson
61f35e39cf
Fix TableGen warnings. This partly reverts my previous change to this file,
...
leaving the mayLoad and mayStore settings around only the load/store
instructions where those can't be inferred from the patterns.
llvm-svn: 78815
2009-08-12 17:04:56 +00:00
Dan Gohman
fdfa3dc188
Fix a missing newline (now that Value*'s operator<< doesn't append one).
...
llvm-svn: 78814
2009-08-12 16:48:27 +00:00
Chris Lattner
736c853143
change CBE to just get TAI now, instead of TM to get TAI.
...
llvm-svn: 78813
2009-08-12 16:41:44 +00:00
Dan Gohman
00ee3a9a1a
Transform -X/C to X/-C, implementing a README.txt entry.
...
llvm-svn: 78812
2009-08-12 16:37:02 +00:00
Dan Gohman
d5b6e35080
Optimize (x/C)*C to x if the division is exact.
...
llvm-svn: 78811
2009-08-12 16:33:09 +00:00
Dan Gohman
9ea1b2644b
Update instcombine's debug output to account for Value*'s operator<<
...
not appending its own newline.
llvm-svn: 78810
2009-08-12 16:28:31 +00:00
Dan Gohman
9a6b2f19e5
Remove a bunch more now-unnecessary Context arguments.
...
llvm-svn: 78809
2009-08-12 16:23:25 +00:00
Dan Gohman
ccb751285b
Eliminate a bunch of now unnecessary explicit Context variables.
...
llvm-svn: 78808
2009-08-12 16:04:34 +00:00
Oscar Fuentes
b153643da2
CMake: Added asm file to x86_64 MSVC build.
...
llvm-svn: 78807
2009-08-12 15:54:28 +00:00
Jim Grosbach
77d5653945
register naming cleanup (s/ip/r12/)
...
llvm-svn: 78806
2009-08-12 15:21:13 +00:00
Chris Lattner
55df534293
Change TargetAsmInfo to be constructed via TargetRegistry from a Target+Triple
...
pair instead of from a virtual method on TargetMachine. This cuts the final
ties of TargetAsmInfo to TargetMachine, meaning that MC can now use
TargetAsmInfo.
llvm-svn: 78802
2009-08-12 07:22:17 +00:00
Chris Lattner
68883c17a2
the x86 version of the name is x86-64, not x86_64. Handle this properly
...
in getArchTypeForLLVMName.
llvm-svn: 78799
2009-08-12 06:45:02 +00:00
Chris Lattner
a6e6f5f728
add support for mingw64 target triples.
...
llvm-svn: 78797
2009-08-12 06:32:10 +00:00
Jakob Stoklund Olesen
7ec5ee575e
Move immediate constant predicate templates from the Blackfin target to MathExtras.h
...
llvm-svn: 78793
2009-08-12 06:22:07 +00:00
Chris Lattner
29efb6cf1f
add a couple of helpers to the Triple class for decoding
...
the darwin version string. This should help consolidate
the variety of weird functions we have scattered around the
codebase that do stuff like this.
llvm-svn: 78792
2009-08-12 06:19:40 +00:00
Evan Cheng
c369ccbe83
Shrink Thumb2 movcc instructions.
...
llvm-svn: 78790
2009-08-12 05:17:19 +00:00
Evan Cheng
bb24fe8602
Remove another Darwin assembler workaround.
...
llvm-svn: 78779
2009-08-12 02:07:19 +00:00
Evan Cheng
410447e028
80 col violation.
...
llvm-svn: 78778
2009-08-12 02:03:03 +00:00
Evan Cheng
9302c40108
Remove an Darwin assembler workaround.
...
llvm-svn: 78777
2009-08-12 01:56:42 +00:00
Evan Cheng
65f3e466df
Shrink ADDS, ADC, RSB, and SUBS.
...
llvm-svn: 78776
2009-08-12 01:49:45 +00:00
Dan Gohman
f6fa20e433
This logic was accidentally inverted in r78767.
...
llvm-svn: 78773
2009-08-12 01:44:20 +00:00
Dan Gohman
631bee4f61
Factor out the code for finding an available register for use
...
in breaking an anti-dependence into a separate function.
llvm-svn: 78767
2009-08-12 01:33:27 +00:00
Bob Wilson
00d605d359
Add missing chain operands for VLD* and VST* instructions.
...
Set "mayLoad" and "mayStore" on the load/store instructions.
llvm-svn: 78761
2009-08-12 00:49:01 +00:00
Owen Anderson
dbf9a912fb
Add contexts to some of the MVT APIs. No functionality change yet, just the infrastructure work needed to get the contexts to where they need to be first.
...
llvm-svn: 78759
2009-08-12 00:36:31 +00:00
Dan Gohman
33d1456220
Simplify this code, and use an in-bounds GEP.
...
llvm-svn: 78755
2009-08-12 00:32:55 +00:00
Chris Lattner
0624ad99f0
prune #include
...
llvm-svn: 78749
2009-08-11 23:07:27 +00:00
Chris Lattner
70cdd11e1c
prune #includage.
...
llvm-svn: 78748
2009-08-11 23:06:16 +00:00
Chris Lattner
57aca57c35
fix CodeGen/PowerPC/2007-01-15-AsmDialect.ll, fallout from r78742
...
llvm-svn: 78747
2009-08-11 23:03:40 +00:00
Chris Lattner
c2a229453e
change the -x86-asm-syntax=intel/att flag to be in X86TAI
...
instead of X86 Subtarget. This elimianates dependencies on
X86Subtarget from X86TAI.
llvm-svn: 78746
2009-08-11 23:01:09 +00:00
Evan Cheng
a29ee9f509
Shrinkify Thumb2 r = add sp, imm.
...
llvm-svn: 78745
2009-08-11 23:00:31 +00:00
Chris Lattner
d45aa1bcf1
second half of commit.
...
llvm-svn: 78744
2009-08-11 22:52:15 +00:00
Chris Lattner
dfc686541d
pass "is64Bit" flag into PPC TAI ctors instead of a whole targetmachine.
...
llvm-svn: 78743
2009-08-11 22:51:34 +00:00
Chris Lattner
0ff895cd83
eliminate asmflavor from subtarget, PPCTAI is the only client
...
and each callee knows that it returns.
llvm-svn: 78742
2009-08-11 22:49:34 +00:00
Chris Lattner
a74023896f
Change the asmprinter to print the comment character before the
...
"inlineasmstart/end" strings so that the contents of the directive
are separate from the comment character. This lets elf targets
get #APP/#NOAPP for free even if they don't use "#" as the comment
character. This also allows hoisting the darwin stuff up to the
shared TAI class.
llvm-svn: 78737
2009-08-11 22:39:40 +00:00
David Goodwin
2686178489
Allow a zero cycle stage to reserve/require a FU without advancing the cycle counter.
...
llvm-svn: 78736
2009-08-11 22:38:43 +00:00
Chris Lattner
f27d5f6662
factorize more darwin TAI stuff. Note that this gives
...
darwin/arm support for .no_dead_strip
llvm-svn: 78734
2009-08-11 22:31:42 +00:00
Daniel Dunbar
514498ccec
X86/AsmParser: Mark MOV64GSrm, MOV64FSrm, GS_MOV32rm, FS_MOV32rm as codegen only.
...
llvm-svn: 78733
2009-08-11 22:24:40 +00:00
Chris Lattner
7015f75b6a
factorize darwin ProtectedDirective and SetDirective.
...
llvm-svn: 78732
2009-08-11 22:22:44 +00:00
Daniel Dunbar
63f93255ae
Add 'isCodeGenOnly' bit to Instruction .td records.
...
- Used to mark fake instructions which don't correspond to an actual machine
instruction (or are duplicates of a real instruction). This is to be used for
"special cases" in the .td files, which should be ignored by things like the
assembler and disassembler. We still need a good solution to handle pervasive
duplication, like with the Int_ instructions.
- Set the bit on fake "mov 0" style instructions, which allows turning an
assembler matcher warning into a hard error.
- -2 FIXMEs.
llvm-svn: 78731
2009-08-11 22:17:52 +00:00
Chris Lattner
bf7a1a3e38
all darwin targets have .space and .zerofill, pull up.
...
llvm-svn: 78730
2009-08-11 22:17:31 +00:00
Chris Lattner
44a2fda8c1
eliminate template from arm TAI
...
llvm-svn: 78729
2009-08-11 22:14:59 +00:00