Anton Korobeynikov
021f465fb5
Cleanup in dbg_stoppoint handling in CBE. Patch by Sandeep Patel.
...
llvm-svn: 78182
2009-08-05 09:31:40 +00:00
Anton Korobeynikov
0b9020497c
Minor arm CBE fixes. Patch by Sandeep.
...
llvm-svn: 78181
2009-08-05 09:31:07 +00:00
Anton Korobeynikov
f2b8211265
Emit module-level inline asm for CBE.
...
Patch by Sandeep Patel
llvm-svn: 78180
2009-08-05 09:29:56 +00:00
Evan Cheng
eb8c4db271
Disable stack coloring with register for now. It's not able to set kill markers.
...
llvm-svn: 78179
2009-08-05 07:26:17 +00:00
Evan Cheng
87e24bb76e
Another nasty coalescer bug (is there another kind):
...
After coalescing reg1027's def and kill are both at the same point:
%reg1027,0.000000e+00 = [56,814:0) 0@70-(814)
bb5:
60 %reg1027<def> = t2MOVr %reg1027, 14, %reg0, %reg0
68 %reg1027<def> = t2LDRi12 %reg1027<kill>, 8, 14, %reg0
76 t2CMPzri %reg1038<kill,undef>, 0, 14, %reg0, %CPSR<imp-def>
84 %reg1027<def> = t2MOVr %reg1027, 14, %reg0, %reg0
96 t2Bcc mbb<bb5,0x2030910>, 1, %CPSR<kill>
Do not remove the kill marker on t2LDRi12.
llvm-svn: 78178
2009-08-05 07:05:41 +00:00
Bruno Cardoso Lopes
078329e0a6
Remove accidental commited comment
...
llvm-svn: 78177
2009-08-05 07:00:43 +00:00
Bruno Cardoso Lopes
2ae97a2777
- Remove custom handling of jumptables by the elf writter (this was
...
a dirty hack and isn't need anymore since the last x86 code emitter patch)
- Add a target-dependent modifier to addend calculation
- Use R_X86_64_32S relocation for X86::reloc_absolute_word_sext
- Use getELFSectionFlags whenever possible
- fix getTextSection to use TLOF and emit the right text section
- Handle global emission for static ctors, dtors and Type::PointerTyID
- Some minor fixes
llvm-svn: 78176
2009-08-05 06:57:03 +00:00
Evan Cheng
a27fac5075
80 col violations.
...
llvm-svn: 78175
2009-08-05 06:41:25 +00:00
Chris Lattner
94f55a81bd
common globals may also not be marked constant.
...
llvm-svn: 78169
2009-08-05 05:41:44 +00:00
Dan Gohman
437fedf899
Revert changes accidentally committed along with r78163.
...
llvm-svn: 78165
2009-08-05 05:38:13 +00:00
Dan Gohman
1110fb6bbd
Teach X86FastISel how to handle CCValAssign::BCvt, which is used for
...
MMX arguments. This fixes PR4684.
llvm-svn: 78163
2009-08-05 05:33:42 +00:00
Chris Lattner
19d238562d
Clarify common linkage and the requirements on it. Enforce
...
them in the verifier.
llvm-svn: 78160
2009-08-05 05:21:07 +00:00
Andreas Bolka
4d59f26912
ZIV tester for LDA.
...
llvm-svn: 78157
2009-08-05 04:26:05 +00:00
Chris Lattner
fd211f171d
expose SectionKindForGlobal to curious clients, named as
...
getKindForGlobal.
llvm-svn: 78156
2009-08-05 04:25:40 +00:00
Andreas Bolka
fcea3a23a0
Restrict LDA to GEPs with the same pointer offset.
...
We can not simply apply ZIV testing to the pointer offsets, as this
would incorrectly return independence for e.g. (GEP x,0,i; GEP x,1,-i).
llvm-svn: 78155
2009-08-05 04:13:41 +00:00
Chris Lattner
f7d482ff1e
add a temporary hook to allow reuse of the asmprinter from the disassembler.
...
llvm-svn: 78154
2009-08-05 04:09:18 +00:00
Andreas Bolka
1532dc3110
Fix LDA testcases.
...
llvm-svn: 78153
2009-08-05 04:03:29 +00:00
Evan Cheng
6fc78f15fe
Turn some insert_subreg, extract_subreg, subreg_to_reg into implicit_defs.
...
llvm-svn: 78151
2009-08-05 03:53:14 +00:00
Bob Wilson
15c5c15ccb
Oops. I didn't mean to commit this piece yet.
...
llvm-svn: 78146
2009-08-05 02:47:13 +00:00
Evan Cheng
9b8516d864
One more. Transfer kill of the larger register when lowering an EXTRACT_SUBREG.
...
llvm-svn: 78145
2009-08-05 02:25:11 +00:00
Evan Cheng
d85e73ca64
One more place where subreg lowering forgot to transfer undefness.
...
llvm-svn: 78144
2009-08-05 01:57:22 +00:00
Dan Gohman
5d566d918b
Major calling convention code refactoring.
...
Instead of awkwardly encoding calling-convention information with ISD::CALL,
ISD::FORMAL_ARGUMENTS, ISD::RET, and ISD::ARG_FLAGS nodes, TargetLowering
provides three virtual functions for targets to override:
LowerFormalArguments, LowerCall, and LowerRet, which replace the custom
lowering done on the special nodes. They provide the same information, but
in a more immediately usable format.
This also reworks much of the target-independent tail call logic. The
decision of whether or not to perform a tail call is now cleanly split
between target-independent portions, and the target dependent portion
in IsEligibleForTailCallOptimization.
This also synchronizes all in-tree targets, to help enable future
refactoring and feature work.
llvm-svn: 78142
2009-08-05 01:29:28 +00:00
Evan Cheng
3020badc5c
If the insert_subreg source is <undef>, insert an implicit_def instead of a copy.
...
llvm-svn: 78141
2009-08-05 01:29:24 +00:00
Dan Gohman
a151796c03
Various comment fixes.
...
llvm-svn: 78139
2009-08-05 01:19:01 +00:00
Dan Gohman
fd9e5bc299
Remove an unnecessary flush in the CppBackend's output.
...
llvm-svn: 78138
2009-08-05 01:06:38 +00:00
Dan Gohman
4b2748d474
Don't flush the raw_ostream between each MachineFunction. These flush
...
calls were originally put in place because errs() at one time was
not unbuffered, and these print routines are commonly used with errs()
for debugging. However, errs() is now properly unbuffered, so the
flush calls are no longer needed. This significantly reduces the
number of write(2) calls for regular asm printing when there are many
small functions.
llvm-svn: 78137
2009-08-05 00:49:25 +00:00
Bob Wilson
1fe51064ba
Change DAG nodes for Neon VLD2/3/4 operations to return multiple results.
...
Get rid of yesterday's code to fix the register usage during isel.
Select the new DAG nodes to machine instructions. The new pre-alloc pass
to choose adjacent registers for these results is not done, so the
results of this will generally not assemble yet.
llvm-svn: 78136
2009-08-05 00:49:09 +00:00
Dan Gohman
f146ba8b3d
cerr isn't buffered so it doesn't need to be flushed.
...
llvm-svn: 78135
2009-08-05 00:44:01 +00:00
Dan Gohman
47a3558350
lli doesn't need <iostream> anymore.
...
llvm-svn: 78133
2009-08-05 00:28:59 +00:00
Dan Gohman
587b5b9682
Remove needless uses of std::flush in the parent process after a
...
fork call. This eliminates a need for <iostream>. Also remove
needless fsync calls.
llvm-svn: 78131
2009-08-05 00:17:00 +00:00
Owen Anderson
a5347b5aca
Privatize the PointerType factory.
...
llvm-svn: 78130
2009-08-05 00:15:12 +00:00
Bruno Cardoso Lopes
21bb984953
1) Proper emit displacements for x86, using absolute relocations where necessary
...
for ELF to work.
2) RIP addressing: Use SIB bytes for absolute relocations where RegBase=0,
IndexReg=0.
3) The JIT can get the real address of cstpools and jmptables during
code emission, fix that for object code emission
llvm-svn: 78129
2009-08-05 00:11:21 +00:00
Dan Gohman
a8cb86c0f5
Use _exit rather than exit in the child process after a failed exec.
...
Add a comment explaining why.
llvm-svn: 78128
2009-08-05 00:09:12 +00:00
Jeffrey Yasskin
61af405985
Make ExecutionEngine::updateGlobalMapping(GV, NULL) properly remove GV's old
...
address from the reverse mapping, and add a test that this works now.
llvm-svn: 78127
2009-08-04 23:53:16 +00:00
Evan Cheng
e366789b50
Fix part 1 of pr4682. PICADD is a 16-bit instruction even in thumb2 mode.
...
llvm-svn: 78126
2009-08-04 23:47:55 +00:00
Owen Anderson
fc36f154f0
Privatize the VectorType uniquing.
...
llvm-svn: 78125
2009-08-04 23:47:44 +00:00
Owen Anderson
1e9c498548
Begin the process of privatizing the type uniquing tables. No API changes yet, but there will be in the near future.
...
llvm-svn: 78122
2009-08-04 23:33:01 +00:00
Dan Gohman
bee2eedb5f
Check for !isa<Constant> instead of isa<Instruction>. This
...
matches what the comment says, and it avoids spurious BitCast
instructions for Argument values.
llvm-svn: 78121
2009-08-04 23:23:56 +00:00
Dan Gohman
a9ceec3d38
Follow Unix behavior and return 127 if the command is not found,
...
and 126 if it is not executable.
llvm-svn: 78120
2009-08-04 23:15:49 +00:00
Chris Lattner
46f946526c
revert r78048, it isn't worth using assertingvh here.
...
llvm-svn: 78119
2009-08-04 23:07:12 +00:00
Benjamin Kramer
3e1cc79a16
Update CMakeLists.
...
llvm-svn: 78118
2009-08-04 23:02:53 +00:00
Owen Anderson
6d699fa39d
It helps if I remember to actually add the file...
...
llvm-svn: 78116
2009-08-04 22:55:26 +00:00
Owen Anderson
cf2c39dc30
Factor some of the constants+context related code out into a separate header, to make LLVMContextImpl.h
...
not hideous. Also, fix some MSVC compile errors.
llvm-svn: 78115
2009-08-04 22:41:48 +00:00
Evan Cheng
7963a20a2d
Fix test.
...
llvm-svn: 78113
2009-08-04 22:22:58 +00:00
Bob Wilson
36d2cedfcb
Convert more Neon tests to use FileCheck.
...
llvm-svn: 78111
2009-08-04 22:01:41 +00:00
Bob Wilson
3607eeebfa
Replace dregsingle operand modifier with explicit escaped curly brackets.
...
For other VLDn and VSTn operations, we need to list the multiple registers
explicitly anyway, so there's no point in special-casing this one usage.
llvm-svn: 78109
2009-08-04 21:39:33 +00:00
Bob Wilson
423086a047
Convert a few Neon tests to use FileCheck.
...
llvm-svn: 78108
2009-08-04 21:33:22 +00:00
Jakob Stoklund Olesen
5edb25cd45
Clean up the handling of two-address operands in RegScavenger.
...
This fixes PR4528.
llvm-svn: 78107
2009-08-04 21:30:30 +00:00
Jakob Stoklund Olesen
ff531b7e7a
Don't give implicit machine operands special treatment in the register scavenger.
...
Imp-def is *not* allowed to redefine a live register.
Imp-use is *not* allowed to use a dead register.
llvm-svn: 78106
2009-08-04 21:29:11 +00:00
Mike Stump
ba093f21d7
Restlyize to match other targets, fixes cmake build to boot.
...
llvm-svn: 78105
2009-08-04 21:27:06 +00:00