llvm-6502/lib/Target
Chris Lattner 8399e02a2c Fix volatile load/store of pointers. Consider this testcase:
void %test(int** %P) {
  %A = volatile load int** %P
  ret void
}

void %test2(int*** %Q) {
  %P = load int*** %Q
  volatile store int** %P, int*** %Q
  ret void
}

instead of emitting:

void test(int **l1_P) {
  int *l2_A;

  l2_A = (int **((volatile int **)l1_P));
  return;
}
void test2(int ***l2_Q) {
  int **l1_P;

  l1_P = *l2_Q;
  *((volatile int ***)l2_Q) = l1_P;
  return;
}

... which is loading/storing volatile pointers, not through volatile pointers,
emit this (which is right):

void test(int **l1_P) {
  int *l3_A;

  l3_A = *((int * volatile*)l1_P);
  return;
}
void test2(int ***l2_Q) {
  int **l1_P;

  l1_P = *l2_Q;
  *((int ** volatile*)l2_Q) = l1_P;
  return;
}


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20191 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-15 05:52:14 +00:00
..
Alpha fix setcc on floats, fixes singlesource:pi, perhaps others 2005-02-14 05:41:43 +00:00
CBackend Fix volatile load/store of pointers. Consider this testcase: 2005-02-15 05:52:14 +00:00
PowerPC Fix Regression/CodeGen/PowerPC/2005-01-14-UndefLong.ll 2005-01-14 20:22:02 +00:00
Skeleton ignore generated files 2004-11-21 00:01:54 +00:00
Sparc Substantially improve the code generated by non-folded setcc instructions. 2005-01-01 16:06:57 +00:00
SparcV8 Substantially improve the code generated by non-folded setcc instructions. 2005-01-01 16:06:57 +00:00
SparcV9 Added new circuit finding alogrithm. 2005-02-10 17:02:58 +00:00
X86 We can fold promoted and non-promoted loads into divs also! 2005-01-25 20:35:10 +00:00
Makefile Build Alpha by default. 2005-01-23 04:34:46 +00:00
MRegisterInfo.cpp Move destructor out of line to avoid vtable emission in every file that includes the header. Thanks to sabre. 2004-10-27 06:00:53 +00:00
Target.td Add some bits that can be set for instructions. 2005-01-02 02:27:48 +00:00
TargetData.cpp Initial support for packed types, contributed by Morten Ofstad 2004-12-01 17:14:28 +00:00
TargetFrameInfo.cpp Remove dead methods 2004-08-12 18:37:15 +00:00
TargetInstrInfo.cpp Finegrainify namespacification 2005-01-19 06:53:34 +00:00
TargetMachine.cpp Add a new target-independent code generator flag. 2005-01-15 06:00:32 +00:00
TargetMachineRegistry.cpp Implement TargetRegistrationListener 2004-07-11 06:03:21 +00:00
TargetSchedInfo.cpp Improve compatiblity with HPUX on Itanium, patch by Duraid Madina 2005-01-16 01:31:31 +00:00